摘要: 1、秒杀系统部署 2、高并发项目整体架构部署(500万日活项目部署) 3、大体先梳理项目中的技术点(结合实验楼分析项目整体架构和技术点) 01.秒杀系统架构 #1.1 超卖问题 1、1000件商品 2、第一步查询商品数量 3、查询商品:A 读 商品 1000 B 读 商品 1000 4、扣减库存:A 阅读全文
posted @ 2021-03-27 21:25 小虾米爱吃鱼 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 1.1 并发常用名词 1、PV(访问量): 页面访问量,页面刷新一次算一次。 2、UV(独立访客): 即Unique Visitor,一个客户端(电脑,手机)为一个访客; 3、DAU(日活跃用户数):登录或使用了某个产品的用户数,这与流量统计工具里的访客(UV)概念相似。 4、峰值QPS: 原理:每 阅读全文
posted @ 2021-03-27 21:19 小虾米爱吃鱼 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1.1 机器规划和架构图 角色 IP nginx反向代理+keepalive-master 192.168.56.61 web01 192.168.56.62 web02 192.168.56.63 nginx反向代理+keepalive-slave 192.168.56.64 1.2 部署ngin 阅读全文
posted @ 2021-03-27 21:17 小虾米爱吃鱼 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 1.1 常规部署方案 角色 IP nginx反向代理服务 192.168.56.61 web01 92.168.56.62 web02 192.168.56.63 1.2 Nginx反向代理 1.2.1 web01和web02安装nginx web01配置 [root@linux-node4 ~]# 阅读全文
posted @ 2021-03-27 21:09 小虾米爱吃鱼 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1.master 主分支,稳定代码,为生产环境做准备的 2.develop 开发分支,为开发服务(测试没有问题的代码最终会合并到master分支形成文档版本) 3.git的三个工作区域 1)工作区: 就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。 2)暂存 阅读全文
posted @ 2021-03-27 21:04 小虾米爱吃鱼 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1.1 互联网公司人员介绍 1.1.1 中大型公司人架构(1000人上下) 1.1.2 中小型公司人员架构(200人上下) 1.2 公司开发环境介绍 开发环境 本地电脑 开发机器: 给开发人员自己用的测试机器 比较大的公司才会有(公司给每一个开发人员可能都会配置一个单独的机器作为开发机器,这个机器是 阅读全文
posted @ 2021-03-27 21:02 小虾米爱吃鱼 阅读(3130) 评论(0) 推荐(0) 编辑
摘要: 1.1 各种算法比较 2层for循环都是 O(n²) log(n):每次循环减半(二分查找) 快排:nlog(n) 阅读全文
posted @ 2021-03-27 20:57 小虾米爱吃鱼 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 1.1 快排-递归实现 **注:**快排代码实现(类似于二叉树 递归调用) 右手左手一个慢动作,左手右手一个慢动作重播 空间复杂度 O(1) #!/usr/bin/env python # -*- coding:utf-8 -*- import random import sys sys.setre 阅读全文
posted @ 2021-03-27 20:56 小虾米爱吃鱼 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 1.1 冒泡 1、*原理:**拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较 2、第一轮结束后最上面那个一定是最大的数 import random def bubble_sort(li): for i in range(len(li) - 1): exch 阅读全文
posted @ 2021-03-27 20:54 小虾米爱吃鱼 阅读(51) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/p/8573587.html 01.二分查找 l = list(range(1,101)) def bin_search(data_set,val): low = 0 high = len(data_set) - 1 while low 阅读全文
posted @ 2021-03-27 20:52 小虾米爱吃鱼 阅读(30) 评论(0) 推荐(0) 编辑
摘要: ​ 二叉树、满二叉树、完全二叉树、平衡二叉树​ B-tree/B+tree 阅读全文
posted @ 2021-03-27 20:49 小虾米爱吃鱼 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 1.1 哈希表 注:字典类型是Python中最常用的数据类型之一,它是一个键值对的集合,字典通过键来索引,关联到相对的值,理论上它的查询复杂度是 O(1) 1.1.1 哈希表 (hash tables) 1.哈希表(也叫散列表),根据关键值对(Key-value)而直接进行访问的数据结构。 2.它通 阅读全文
posted @ 2021-03-27 20:47 小虾米爱吃鱼 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1.1 数组定义 1.所谓数组,就是相同数据类型的元素按一定顺序排列的集合 2.在Java等其他语言中并不是所有的数据都能存储到数组中,只有相同类型的数据才可以一起存储到数组中。 3.因为数组在存储数据时是按顺序存储的,存储数据的内存也是连续的,所以他的特点就是寻址读取数据比较容易,插入和删除比较困 阅读全文
posted @ 2021-03-27 20:44 小虾米爱吃鱼 阅读(48) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/p/8574655.html#i4 1.1 单链表定义 1、注:链表中每个元素都是一个对象,每个对象称为一个节点 2、每个节点包含两部分: 数据域: 存放当前节点数据 指针域: 指向下一个节点的内存地址 1.2 python模拟单链表 c 阅读全文
posted @ 2021-03-27 20:32 小虾米爱吃鱼 阅读(37) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/p/8574655.html#i3 1.1 队列定义 1、队列是一个数据集合,仅允许在列表的一端进行插入,另一端进行删除 2、插入的一端称为队尾(rear),插入动作叫进队或入队 3、进行删除的一端称为对头(front),删除动作称为出队 阅读全文
posted @ 2021-03-27 20:27 小虾米爱吃鱼 阅读(129) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/p/8574655.html#i2 1.1 栈定义 1、栈的定义 栈是一种数据集合 ,可以理解为只能在一端进行插入或删除操作的列表 2、栈的特点 后进先出(last-in, first-out) 3、栈的概念 栈顶,栈底 4、栈的基本操作 阅读全文
posted @ 2021-03-27 20:24 小虾米爱吃鱼 阅读(42) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/category/1168368.html 01.数据结构与数据类型 1.1 数据结构是什么 1、简单来说,数据结构就是设计数据以何种方式存储在计算机中 2、比如:列表,集合,与字典 等都是一种数据结构 3、程序=数据结构+算法 1.2 阅读全文
posted @ 2021-03-27 20:22 小虾米爱吃鱼 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 第一步:查询redis缓存是否存在这个key 第二步:如果存在这个key,不用去mysql中查询,直接从redis中取出数据即可(减轻了mysql压力) 第三步:如果查询的key不存在,先到mysql中查询数据,让后设置到redis中,下次查询就有了 1.1 2B青年操作 2B青年每一个需要使用缓存 阅读全文
posted @ 2021-03-27 20:15 小虾米爱吃鱼 阅读(37) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/xiaonq/p/12328934.html 1.1 redis事物介绍 1.redis事物是可以一次执行多个命令,本质是一组命令的集合。 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 **作用:**一个队列中,一次性、顺 阅读全文
posted @ 2021-03-27 20:13 小虾米爱吃鱼 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 1.1 缓存穿透 查询一个不存在的key 1)定义 缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,接着查询数据库也无法查询出结果 虽然也不会写入到缓存中,但是这将会导致每个查询都会去请求数据库,造成缓存穿透; 2)解决方法 :布隆过滤 对所有可能查询的参数以hash形式存储,在控制层先进行校 阅读全文
posted @ 2021-03-27 20:01 小虾米爱吃鱼 阅读(52) 评论(0) 推荐(0) 编辑