Redis发布订阅使用方法
Posted 程序之心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis发布订阅使用方法相关的知识,希望对你有一定的参考价值。
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、订阅指定channel
192.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发布订阅使用方法的主要内容,如果未能解决你的问题,请参考以下文章