Redis 做消息队列(MQ)有多种方式,适用场景不同。下面按常见方案 + 示例 + 优缺点给你系统讲一下。
LPUSH / RPUSH 入队RPOP / LPOP 出队# 生产者
LPUSH queue:order "order1"
LPUSH queue:order "order2"
# 消费者
RPOP queue:order
BRPOP queue:order 0
0 表示一直阻塞等待✅ 适合:允许少量丢失、简单任务队列
# 订阅
SUBSCRIBE channel:log
# 发布
PUBLISH channel:log "hello"
✅ 适合:实时通知、聊天、推送
Redis 5+ 引入,真正的消息队列
XADD mystream * msg "order1"
XREAD BLOCK 0 STREAMS mystream $
XGROUP CREATE mystream group1 $
XREADGROUP GROUP group1 consumer1 COUNT 1 STREAMS mystream >
XACK mystream group1 1620000000000-0
✅ 不丢消息
✅ 支持多消费者
✅ 可回溯
✅ 类似 Kafka
✅ 生产环境首选
| 方案 | 持久化 | ACK | 消费组 | 推荐度 |
|---|---|---|---|---|
| List | ❌ | ❌ | ❌ | ⭐⭐ |
| Pub/Sub | ❌ | ❌ | ❌ | ⭐ |
| Stream | ✅ | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
如果你愿意,我可以:
你打算用哪种语言?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。