“Redis:发布/订阅(pub/sub)”的版本间差异
跳到导航
跳到搜索
(→常用命令) |
(→常用命令) |
||
第30行: | 第30行: | ||
| SUBSCRIBE channel [channel ...] || '''订阅'''给定的一个或多个频道的信息。 | | SUBSCRIBE channel [channel ...] || '''订阅'''给定的一个或多个频道的信息。 | ||
|- | |- | ||
| | | UNSUBSCRIBE [channel [channel ...]] || '''退订'''给定的频道。 | ||
|- | |- | ||
| | | PSUBSCRIBE pattern [pattern ...] || '''订阅一个或多个'''符合给定模式的频道。 | ||
|- | |- | ||
| PUNSUBSCRIBE [pattern [pattern ...]] || ''' | | PUNSUBSCRIBE [pattern [pattern ...]] || '''退订所有'''给定模式的频道。 | ||
|- | |- | ||
| PUBLISH channel message || 将信息发送到指定的频道。 | | PUBLISH channel message || 将信息发送到指定的频道。 |
2021年10月3日 (日) 00:12的版本
什么是发布订阅?
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(publish)发送消息,订阅者(subscribe)接收消息。
- 发布订阅也叫“生产者消费者”模式,是实现“消息队列”的一种方式;
消息队列的三要素:
- 生产者(producer)
- 消费者(consumer)
- 消息服务(broker)
发布:
订阅:
Redis发布和订阅
发布订阅是消息队列的一种方式,基于消息队列的方式,可以实现系统解耦、削峰填谷,顶住流量洪峰;
- redis 的主业目前是基于键值对的数据存储、缓存等,消息队列可能是 redis 的一种尝试;
- 常用的流行的消息队列有:“ActiveMQ”、“RabbitMQ”等;
常用命令
命令 | 描述 |
---|---|
SUBSCRIBE channel [channel ...] | 订阅给定的一个或多个频道的信息。 |
UNSUBSCRIBE [channel [channel ...]] | 退订给定的频道。 |
PSUBSCRIBE pattern [pattern ...] | 订阅一个或多个符合给定模式的频道。 |
PUNSUBSCRIBE [pattern [pattern ...]] | 退订所有给定模式的频道。 |
PUBLISH channel message | 将信息发送到指定的频道。 |
PUBSUB subcommand [argument [argument ...]] | 查看订阅与发布系统状态。 |
模拟实现
(以命令行模拟实现):
- 开启 4 个 redis 客户端(“./redis-cli”),如上图,3 个客户端作为消息订阅者,1 个为消息发布者:
- 让 3 个消息订阅者订阅某个频道主题:“
subscribe channelTest
”; - 让1个消息发布者向频道主题上发布消息:“
publish channelTest message123
”;
如果是订阅匹配模式的频道主题:“psubscribe chan*
”