Redis(五)-特性-消息队列

如题所述

消息队列要能支持组件通信消息的快速读写,而Redis本身支持数据的高速访问,正好可以满足消息队列的读写性能需求。另外,消息队列在存取消息时,必须要满足三个需求:

针对消息队列的需求,本节就来分析下Redis实现消息队列的方案

BLPOP :队列为空时阻塞
LPUSH :队列满时阻塞
BRPOPLPUSH :取出消费同时保存到另外一个备份list

从消息有序性、唯一性、可靠性三个方面分析是否可行

为了解决可靠性问题可以使用BRPOPLPUSH

当consumer故障恢复后可以从备份队列中取出消息进行处理

Streams是Redis专门为消息队列设计的数据类型,它提供了丰富的消息队列操作命令;

XADD :插入消息,消息的格式是键-值对形式,保证有序,可以自动生成全局唯一ID;
XREAD :用于读取消息,可以按ID读取数据;
XREADGROUP :按消费组形式读取消息;
XPENDING :用来查询每个消费组内所有消费者已读取但尚未确认的消息
XACK :用于向消息队列确认消息处理已完成

-------- over ---------

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜