主题
发布/订阅
Redis 的发布/订阅(Pub/Sub)是一种消息通信机制,客户端可以向一个或多个频道发布消息,订阅该频道的客户端会实时接收到消息。
基本概念
- 发布者(Publisher):向频道发送消息的客户端。
- 订阅者(Subscriber):订阅一个或多个频道,接收消息的客户端。
- 频道(Channel):消息的载体,发布者和订阅者通过频道通信。
主要命令
- SUBSCRIBE:订阅一个或多个频道
bash
SUBSCRIBE channel1 [channel2 ...]
- UNSUBSCRIBE:取消订阅一个或多个频道
bash
UNSUBSCRIBE channel1 [channel2 ...]
- PUBLISH:向指定频道发布消息
bash
PUBLISH channel message
- PSUBSCRIBE:按模式订阅频道(支持通配符)
bash
PSUBSCRIBE pattern
- PUNSUBSCRIBE:取消模式订阅
bash
PUNSUBSCRIBE pattern
工作流程
- 订阅者使用
SUBSCRIBE
命令订阅一个或多个频道。 - 发布者通过
PUBLISH
命令向某频道发送消息。 - Redis 将消息推送给所有订阅该频道的客户端。
- 订阅者实时接收消息,实现即时通信。
特点与限制
- 发布/订阅消息不会持久化,订阅者不在线时会错过消息。
- 不支持消息队列功能,适合实时广播。
- 简单易用,适合事件通知、实时聊天等场景。
应用场景
常用于实时聊天系统、消息广播、事件通知、日志收集等需要低延迟消息传递的场景。