Redis发布订阅使用方法
2017-02-13 13:02
387 查看
Redis发布订阅
发布订阅模式中发布消息的为publisher即发布者,接收消息的为subscriber即订阅者。在Redis中,所有的消息通过channel即频道进行发布,一个发布者可以向多个channel发布消息,一个订阅者也可以订阅多个channel。Redis不对消息进行持久化,如果消息发布时订阅者还没有进行订阅,则不会再收到此消息。
发布订阅命令
命令 | 格式 | 说明 |
PUBLISH | PUBLISH channel message | 发布message到指定的channel |
SUBSCRIBE | SUBSCRIBE channel [channel ...] | 订阅1个或多个指定的channel |
UNSUBSCRIBE | UNSUBSCRIBE [channel [channel ...]] | 取消订阅1个或多个指定的channel,如果不指定channel退订所有通过SUBSCRIBE订阅的channel |
PSUBSCRIBE | PSUBSCRIBE pattern [pattern ...] | 根据匹配模式订阅channel |
PUNSUBSCRIBE | PUNSUBSCRIBE [pattern [pattern ...]] | 根据匹配模式取消订阅channel,如果不指定匹配模式退订所有通过PSUBSCRIBE订阅的channel |
subscribe不能重复订阅同一个channel,而psubscribe按照匹配模式订阅时有可能会多次订阅同一个channel。如果psubscribe多次订阅了同一个channel,发布者使用publish发布消息到此channel后,订阅者会多次收到此消息。
unsubscribe只能退订subscribe订阅的channel,punsubscribe只能退订psubscribe订阅的channel。
使用方法
1、订阅指定channel192.168.1.100:6379> subscribe testchan
Reading messages... (press Ctrl-C to quit)
1) "subscribe" #订阅成功
2) "testchan" #订阅的channel名称
3) (integer) 1 #已订阅的channel个数
1) "message" #收到消息
2) "testchan" #消息来源channel
3) "hello" #消息内容
192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量
2、订阅指定匹配模式的channel
192.168.1.100:6379> psubscribe test*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe" #订阅成功
2) "test*" #订阅的channel匹配模式
3) (integer) 1 #已订阅的channel匹配模式个数
1) "pmessage" #收到消息
2) "test*" #匹配的订阅模式
3) "testchan" #消息来源channel
4) "hello" #消息内容
192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量
原文地址:http://caiguoqing.org/post/110
相关文章推荐
- Redis发布订阅使用方法
- 使用Spring-Redis实现消息的发布/订阅
- StackExchange.Redis 使用-发布订阅 (二)
- Redis高级实用特性(持久化机制、发布订阅消息、虚拟内存的使用)
- .net core 使用Redis的发布订阅
- 使用redis实现消息发布订阅
- 数据库同步的两种方式(发布、订阅使用方法
- Redis五大类型操作使用以及订阅发布功能
- 使用Spring Data Redis 实现订阅/发布
- 使用nodejs+socket.io+redis订阅发布完成竞拍的过程
- StackExchange.Redis 使用-发布订阅 (二)
- .NET平台下Redis使用(六)【ServiceStack.Redis发布、订阅服务示例】
- Spring Boot使用Redis进行消息的发布订阅
- Redis 订阅发布_Jedis实现方法
- Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
- redis使用(三):事务,过期时间,排序,订阅/发布,持久化
- 使用redis订阅/发布创建简单聊天室
- RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用
- java使用redis发布和订阅消息
- PHP使用redis消息队列发布微博的方法示例