Redis 简介
Redis 教程
Redis 安装
Redis 配置
Redis 数据类型
Redis 命令
Redis 命令
Redis 键(key)
Redis 字符串(String)
Redis 哈希(Hash)
Redis 列表(List)
Redis 集合(Set)
Redis 有序集合(sorted set)
Redis HyperLogLog
Redis 发布订阅
Redis 事务
Redis 脚本
Redis 连接
Redis 服务器
Redis 进阶教程
Redis 数据备份与恢复
Redis 安全
Redis 性能测试
Redis 客户端连接
Redis 管道技术
Redis 分区
Java 使用 Redis
PHP 使用 Redis
Redis 发布订阅 - Redis 教程 - 光年文档管理系统(Light Year Doc)
网站首页
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 doc.itshubao.com" (integer) 1 # 订阅者的客户端会显示如下消息 1) "message" 2) "redisChat" 3) "Redis is a great caching technique" 1) "message" 2) "redisChat" 3) "Learn redis by doc.itshubao.com" ``` ## Redis 发布订阅命令 <table class="table"><tbody><tr><th style="width:10%">序号</th><th>命令及描述</th></tr><tr><td>1</td><td><a href="#" target="_blank">PSUBSCRIBE pattern [pattern ...]</a><br/> 订阅一个或多个符合给定模式的频道。</td></tr><tr><td>2</td><td><a href="#" target="_blank">PUBSUB subcommand [argument [argument ...]]</a><br/> 查看订阅与发布系统状态。</td></tr><tr><td>3</td><td><a href="#" target="_blank" textvalue="PUBLISH channel message">PUBLISH channel message</a><br/> 将信息发送到指定的频道。</td></tr><tr><td>4</td><td><a href="#" target="_blank" textvalue="PUNSUBSCRIBE [pattern [pattern ...]]">PUNSUBSCRIBE [pattern [pattern ...]]</a><br/> 退订所有给定模式的频道。</td></tr><tr><td>5</td><td><a href="#" target="_blank">SUBSCRIBE channel [channel ...]</a><br/> 订阅给定的一个或多个频道的信息。</td></tr><tr><td>6</td><td><a href="#" target="_blank" textvalue="UNSUBSCRIBE [channel [channel ...]]">UNSUBSCRIBE [channel [channel ...]]</a><br/> 指退订给定的频道。</td></tr></tbody></table>
上一篇:
Redis HyperLogLog
下一篇:
Redis 事务