订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。
PUBLISH channel message (将信息 message 发送到指定的频道 channel)
返回值是一个数字,这个数字 : 收到消息的客户端数量。
SUBSCRIBE channel [channel …]
订阅给指定频道的信息。
一旦客户端进入订阅状态,客户端就只可接受订阅相关的命令SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE和PUNSUBSCRIBE除了这些命令,其他命令一律失效。
注:channel 是一个数组,因此可以 订阅多个频道。
UNSUBSCRIBE [channel [channel …]]
指示客户端退订给定的频道,若没有指定频道,则退订所有频道.
如果没有频道被指定,即,一个无参数的 UNSUBSCRIBE 调用被执行,那么客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订。 在这种情况下,命令会返回一个信息,告知客户端所有被退订的频道。
PSUBSCRIBE pattern [pattern …]
订阅给定的模式(patterns)。匹配模式
支持的模式(patterns)有:
- h?llo subscribes to hello, hallo and hxllo
- h*llo subscribes to hllo and heeeello
- h[ae]llo subscribes to hello and hallo, but not hillo
如果想输入普通的字符,可以在前面添加\
PUBSUB CHANNELS [pattern]
列出当前active channels.活跃是指信道含有一个或多个订阅者(不包括从模式接收订阅的客户端) 。 如果pattern未提供,所有的信道都被列出,否则只列出匹配上指定全局-类型模式的信道被列出.
PUBSUB NUMSUB [channel-1 … channel-N]
列出指定信道的订阅者个数(不包括订阅模式的客户端订阅者);信道的列表和每个列表中订阅者的个数. 格式为 信道,个数,信道,个数,… 简单的列表.
PUBSUB NUMPAT
返回订阅模式的数量(使用命令PSUBSCRIBE实现).注意, 这个命令返回的不是订阅模式的客户端的数量, 而是客户端订阅的所有模式的数量总和。
1,首先订阅2个频道,foo 和 bar
127.0.0.1:6379> subscribe foo bar
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "bar"
3) (integer) 2
1) "message"
2) "foo"
3) "hello"
1) "message"
2) "foo"
3) "\xe4\xbd\xa0\xe5\xa5\xbd"
1) "message"
2) "foo"
3) "wahaha"
2.再开一个客户端,给这个频道发布消息,对应的消息,会在订阅的客户端进行展示。
127.0.0.1:6379> publish foo hello
(integer) 1
127.0.0.1:6379> publish foo "你好"
(integer) 1
127.0.0.1:6379> publish foo wahaha
(integer) 1
之前准备学习的时候写博客,可是都没有坚持下去,希望这次可以有始有终。
Redis 坚持第一天 :为什么要使用 redis ?
Redis 坚持第二天 :Redis 的安装与启动
Redis 坚持第三天 :Redis 使用配置文件启动,常见配置学习。
Redis 坚持第四天 :
- Redis 五种常见的数据结构:String
- Redis 五种常见的数据结构:Hash
- Redis 五种常见的数据结构:List
- Redis 五种常见的数据结构:Set
- Redis 五种常见的数据结构:zset
Redis 坚持第五天 :Redis 客户端:Jredis 和 spring-data-redis 整合。
Redis 坚持第六天 :Redis 慢查询日志。
Redis 坚持第七天 :Redis pipeline。
Redis 坚持第八天 :Redis 发布订阅。