随笔分类 -  redis

摘要:一.多线程下引起的超卖问题呈现1.1.我先初始化库存数量为1、订单数量为0 1.2.然后我开启3个线程去执行业务 业务为:判断如果说库存数量大于0,则库存减1,订单数量加1 结果为:库存为-2,订单数量为3 原因:如下图所示,这是因为分别有6个指令(3个库存减1指令,3个订单数量加1指令)在redi 阅读全文
posted @ 2023-05-06 17:46 David-散步的蜥蜴 阅读(779) 评论(0) 推荐(2)
摘要:一.什么是脑裂? 有了两个master,一个让你向左,一个让你向右,一个集群中出现多个主节点,使得集群处于异常状态。 二.脑裂的产生 2.1.正常的集群状态 两个网络只有1个master。 2.2.出现脑裂 当前集群中有6个节点,左边3个节点(在上海)和右边3个节点(在北京)不在同一个网络,如果两个 阅读全文
posted @ 2023-01-13 11:05 David-散步的蜥蜴 阅读(408) 评论(0) 推荐(0)
摘要:一.未做消息队列缺陷:用户秒杀,请求到了上游服务秒杀服务,然后上游服务调用下游服务下订单,减去库存,更新余额。上游服务秒杀服务的并发量能力有10000,下游服务的并发量能力有1000,当真的客户端并发量是10000,上游服务秒杀服务能接收10000个请求,但是下游服务只能接收1000个请求,那么下游 阅读全文
posted @ 2020-05-31 07:41 David-散步的蜥蜴 阅读(2630) 评论(0) 推荐(1)
摘要:一、什么是消息队列?1、消息就是数据。2、队列有队尾和队头,队列有入队和出队,队列先进先出。3、生产者存数据入口4、消费者取数据入口 二、推模型--发布订阅模型--阻塞 主动把消息推给订阅者。数据实时要求高,用推。 三、拉模型--生产者消费者模型--非阻塞消费者自己去拉取数据。数据实时要求不高,用拉 阅读全文
posted @ 2020-05-25 21:45 David-散步的蜥蜴 阅读(664) 评论(0) 推荐(0)
摘要:一.单进程多线程的锁-线程锁 锁住线程的锁叫线程锁,像C#中的lock,Monitor,让线程排队,同一时刻只能有一个线程进来,让线程同步排队。 二.多进程的锁-分布式锁 锁住进程的锁就叫分布式锁,是锁住进程的一种机制,让进程排队。 三.电商秒杀场景 3.1.单体架构 并发量不够,秒杀服务只能并发1 阅读全文
posted @ 2020-05-19 07:55 David-散步的蜥蜴 阅读(1372) 评论(0) 推荐(0)