Redis(五)-特性-消息队列
1个回答
展开全部
消息队列要能支持组件通信消息的快速读写,而Redis本身支持数据的高速访问,正好可以满足消息队列的读写性能需求。另外,消息队列在存取消息时,必须要满足三个需求:
针对消息队列的需求,本节就来分析下Redis实现消息队列的方案
BLPOP :队列为空时阻塞
LPUSH :队列满时阻塞
BRPOPLPUSH :取出消费同时保存到另外一个备份list
从消息有序性、唯一性、可靠性三个方面分析是否可行
为了解决可靠性问题可以使用BRPOPLPUSH
当consumer故障恢复后可以从备份队列中取出消息进行处理
Streams是Redis专门为消息队列设计的数据类型,它提供了丰富的消息队列操作命令;
XADD :插入消息,消息的格式是键-值对形式,保证有序,可以自动生成全局唯一ID;
XREAD :用于读取消息,可以按ID读取数据;
XREADGROUP :按消费组形式读取消息;
XPENDING :用来查询每个消费组内所有消费者已读取但尚未确认的消息
XACK :用于向消息队列确认消息处理已完成
-------- over ---------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询