加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Redis做消息队列

(2023-11-27 13:20:53)
分类: 数据库es

消息队列(Message Queue)是一种应用间的通信方式,是为了方便业务场景中数据的传输和处理。

  • 消息队列流程中有三个角色:生产者、消费者、消息处理中心。生产者就是发啊送消息的,消费者就是接收消息的,消息处理中心就是指消息队列。
  • 使用消息队列,生产者将数据发送到消息队列,不用等待消费者的响应消息,实现了数据的异步处理,使整个过程松耦合。
  • 作为消息队列,最重要的是它的可靠性。可靠性既要保证数据不能丢失,又要能在功能上满足业务上的种种需求:数据只被消费一次,数据可以被多次消费,数据要保证顺序等等。
    Redis做消息队列
    Redis设计初衷是做缓存的,并不是消息队列。一开始作者的建议也是不要使用redis去做消息队列。但随着越来越多的人使用redis去做去消息队列,redis的作者终于在 Redis 5.0 版本,把 disque 功能移植到了 Redis 中,并给它定义了一个新的数据类型:Stream。
    Redis做消息队列,主要有3种模式来实现。
  • List 队列
  • 发布/订阅模型:Pub/Sub
  • Stream数据

1. 最简单的:使用 List队列

当业务需求比较简单的时候,可以使用List来实现消息队列。
因为 List 底层的实现就是一个链表,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。
Redis中也提供了方法来操作数据,可以左进右出,右进左出

  • 生产者使用 LPUSH 发布消息:


作者:轻轻敲醒沉睡的心灵
链接:https://www.jianshu.com/p/a135f13ff8d7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有