码迷,mamicode.com
首页 > 其他好文 > 详细

Redis学习笔记07Redis命令之(6) 发布订阅

时间:2017-07-22 11:02:14      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:lib   返回值   包括   集合   style   family   nts   cal   没有   

1.1.1. subscribe

订阅一个或多个频道。当所订阅的频道上发布了消息时,本客户端连接将收到这个消息。

 

redis.coe2coe.me:6379> subscribe abc

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

1) "subscribe"

2) "abc"

3) (integer) 1

成功订阅了一个频道。

 

也可以一次订阅多个频道:

redis.coe2coe.me:6379> subscribe abc 123 456

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

1) "subscribe"

2) "abc"

3) (integer) 1

1) "subscribe"

2) "123"

3) (integer) 2

1) "subscribe"

2) "456"

3) (integer) 3

成功订阅了3个频道。

 

1.1.2. publish

 

发布消息到指定的频道。

redis.coe2coe.me:6379> publish abc hello

(integer) 0

 

返回值0表示此时没有客户端连接订阅这个频道。即使之后有客户端连接订阅了这个频道,也不会再收到这次发布的消息。必须先订阅,再发布。

 

redis.coe2coe.me:6379> publish abc "hello,redis"

(integer) 3

返回值3表示有三个客户端连接订阅了这个频道,并且接收到了这个消息。

 

此时,订阅了这个频道的客户端连接将收到这个消息:

redis.coe2coe.me:6379> subscribe abc

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

1) "subscribe"

2) "abc"

3) (integer) 1

在发布消息hello,redis之前,已经订阅了这个频道abc

 

1) "message"

2) "abc"

3) "hello,redis"

收到了本次发布的消息:hello,redis

 

 

1.1.3. unsubscribe

取消对指定频道的订阅。

两种方式:

(1)取消对所有频道的订阅。

unsubscribe

 

(2)取消对指定频道的订阅。

unsubscribe abc

 

1.1.4. psubscribe

支持模糊匹配的订阅,频道名称可以使用模糊匹配。

 

redis.coe2coe.me:6379> psubscribe  a*

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

1) "psubscribe"

2) "a*"

3) (integer) 1

 

订阅所有频道名称以a开头的频道。

 

 

1.1.5. punsubscribe

支持模糊匹配的取消订阅。

redis.coe2coe.me:6379> punsubscribe a*

1) "punsubscribe"

2) "a*"

3) (integer) 0

 

 

1.1.6. pubsub channels

查看频道列表,包括订阅的频道,或者发布的频道。

redis.coe2coe.me:6379> pubsub channels

1) "456"

2) "123"

3) "abc"

 

支持频道名的模糊匹配:

redis.coe2coe.me:6379> pubsub channels a*

1) "abc"

 

1.1.7. pubsub numsub

 

查询频道的订阅者的数量。

 

redis.coe2coe.me:6379> pubsub numsub abc 123

1) "abc"

2) (integer) 2

3) "123"

4) (integer) 1

发现频道abc2个订阅者,频道1231个订阅者。

 

 

当不指定频道名称时,返回空集合。

redis.coe2coe.me:6379> pubsub numsub

(empty list or set)

 

 

pubsub numsub abc返回的结果不包括使用psubscribe ab* 订阅的订阅者,尽管该订阅者也能收到abc频道上发布的消息。

 

 

1.1.8. pubsub numpat

查看采用psubscribe订阅的订阅者数量,不包括使用subscribe订阅的订阅者。

 

redis.coe2coe.me:6379> pubsub numpat

(integer) 1

 

此命令不支持指定频道名称。

redis.coe2coe.me:6379> pubsub numpat abc

(error) ERR Unknown PUBSUB subcommand or wrong number of arguments for ‘numpat‘

 

redis.coe2coe.me:6379> pubsub numpat ab*

(error) ERR Unknown PUBSUB subcommand or wrong number of arguments for ‘numpat‘

Redis学习笔记07Redis命令之(6) 发布订阅

标签:lib   返回值   包括   集合   style   family   nts   cal   没有   

原文地址:http://www.cnblogs.com/coe2coe/p/7220475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!