Redis 教程
1. Redis 教程 2. Redis 简介 3. Redis 安装 4. Redis 配置 5. Redis 数据类型 6. Redis 命令 7. Redis 键(key) 8. Redis 字符串(String) 9. Redis 哈希(Hash) 10. Redis 列表(List) 11. Redis 集合(Set) 12. Redis 有序集合(sorted set) 13. Redis HyperLogLog 14. Redis 发布订阅 15. Redis 事务 16. Redis 脚本 17. Redis 连接 18. Redis 服务器 19. Redis 数据备份与恢复 20. Redis 安全 21. Redis 性能测试 22. Redis 客户端连接 23. Redis 管道技术 24. Redis 分区 25. Java 使用 Redis 26. PHP 使用 Redis

Redis 发布订阅

Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:


实例

以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat:


redis 127.0.0.1:6379> SUBSCRIBE redisChat



Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "redisChat"

3) (integer) 1

现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。


redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"



(integer) 1



redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by .com"



(integer) 1



# 订阅者的客户端会显示如下消息

1) "message"

2) "redisChat"

3) "Redis is a great caching technique"

1) "message"

2) "redisChat"

3) "Learn redis by .com"


Redis 发布订阅命令

下表列出了 redis 发布订阅常用命令:

序号命令及描述
1PSUBSCRIBE pattern [pattern ...]
订阅一个或多个符合给定模式的频道。
2PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统状态。
3PUBLISH channel message
将信息发送到指定的频道。
4PUNSUBSCRIBE [pattern [pattern ...]]
退订所有给定模式的频道。
5SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
6UNSUBSCRIBE [channel [channel ...]]
指退订给定的频道。