想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送 公众号“不太灵光的程序员” 同时发布《基于Redis实现消息队列的6种方案之方案简述(下)Redis5.0的新类型Stream》 阅读原文
Redis5.0才有的新数据类型Stream基本上可以满足你对消息队列的所有需求,以下的内容有点长,如果你还在忙的话建议先收藏下。
基于Stream实现的消息队列主要分为两个类型的消息队列,分别支持广播模式和分组消费模式。
- 基于XADD+XREAD+XDEL实现的有序消息队列
- 基于XADD+XGROUP+XACK+XPENDING+XCLAIM实现的有序消息队列
用来做消息队列并不是一个很好的选择,主要有两个原因。
第一个原因是XREAD
读消息的特点是所有客户端共享队列中的所有消息,是典型的广播模式和发布/订阅模式类型,在数据安全方面还要比发布/订阅模式要好一些,后来加入的客户端还是可以通过start的设置来获取到历史的消息。
共享队列消息还不能发挥多客户端处理的优势,做即时通讯的队列服务还不错,如果是为了负载处理服务就完全没有效果了。
第二个原因是XREAD
是读取消息队列的数据并没有确认操作,需要借助XDEL
删除队列消息或者在创建队列是