Redis原理浅析(二):消息通知、持久化、集群、redis遇到的问题及解决方法

本文深入探讨Redis的消息通知机制,包括生产者消费者和发布订阅者模式,详细解析Redis的持久化策略RDB与AOF及其优缺点。进一步讨论Redis的复制、哨兵和集群解决方案,最后分析了Redis在实际应用中可能遇到的缓存一致性、缓存穿透和缓存雪崩问题,并提出相应解决策略。
摘要由CSDN通过智能技术生成


上一节介绍了数据基本类型,事务,以及对数据惊醒排序的操作,这一节我们来介绍Redis的进阶操作:消息通知、持久化、集群、Redis作为缓存会出现的问题以及解决方法。

消息通知

生产者消费者模式

生产者生产消息放到队列中,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息,即对于每个消息最多只能被一个消费者拥有。

  • 具体的方法就是创建一个任务队列,生产者主动lpush消息,而消费者去rpop数据。
  • 但是这样存在一个问题,就是消费者需要主动去请求数据,周期性的请求会造成资源的浪费,如果可以实现一旦有新消息加入队列就通知消费者就好了。
  • 这时借助brpop命令就可以实现这样的需求。brpop和rpop命令相似,唯一区别就是当列表中没有元素时,brpop命令会一直阻塞住连接,直到有新元素加入。

BRPOP key timeout

brpop命令接收两个参数,第一个参数key为键值,第二个参数timeout为超时时间。BRPOP命令取数据时候,如果暂时不存在数据,该命令会一直阻塞直到达到超时时间。如果timeout设置为0,那么就会无限等待下去。

任务队列模式示意图:
在这里插入图片描述
任务队列:
(1)实例B中对队列queue进行监听
在这里插入图片描述
(2)实例A中将“task”入队
在这里插入图片描述
(3)实例B马上返回结果
在这里插入图片描述
(4)queue中元素被取走
在这里插入图片描述
优先级队列:
(1)BLPOP可以同时接收多个键
在这里插入图片描述
(2)再另一个实例中执行入队操作
在这里插入图片描述
(3)返回结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值