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

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

发现频道abc有2个订阅者,频道123有1个订阅者。

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

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‘

时间: 2024-08-07 00:10:12

Redis学习笔记07Redis命令之(6) 发布订阅的相关文章

Redis学习笔记~常用命令总结

回到目录 客户端redis-cli常用的命令总结 连接到服务器 redis-cli -h 127.0.0.1 -p 6379 --连接指定的redis服务器 发布/订阅, pub/sub模式运行在redis进程中,不会被持久化过,进程挂了,信息丢失 SUBSCRIBE Lind --订阅一个管道 PUBLISH Lind "你好,大叔!" --发布一个管道 键操作,redis数据都是由key/value组件,对key操作是所有操作的基础 DEL lind --删除键 Exist lin

Redis学习笔记04Redis命令之(3)服务器操作

1.1.1. client list 列出所有客户端连接信息. 每个连接使用一个id=xxx的行表示. redis.coe2coe.me:6379> client list id=8 addr=192.168.197.101:42247 fd=6 name= age=169 idle=169 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=command id=9 addr

Redis学习笔记06Redis命令之(5)事务

1.1.1. multi 开始一个新事务. redis.coe2coe.me:6379> multi OK 执行此命令后,后面执行的set等命令将被缓存,直到被discard命令取消,或者被exec命令提交执行. 一旦执行了multi,再执行的命令,将被缓存到一个执行队列中,而不是立即执行.因此这些命令的执行的结果,再其它客户端连接中是看不到的. 比如: 在连接1中: redis.coe2coe.me:6379> select 0 OK redis.coe2coe.me:6379> ke

Redis学习笔记05Redis命令之(4)配置和统计

1.1. 配置 1.1.1. config get 获取指定的配置信息,这些配置在redis.conf文件中指定,或者通过config set指定.config get 支持模糊匹配方式查询. redis.coe2coe.me:6379> config get log* 1) "logfile" 2) "./logs/redis.log" 3) "loglevel" 4) "debug" 1.1.2. config se

Redis学习笔记(简单了解与运行)

Redis学习笔记(简单了解与运行) 开源的非关系型数据库 是REmote Dictionary Server(远程字典服务器)的缩写,以字典结构存储数据 允许其他应用通过TCP协议读写字典中的内容. Redis支持存储的键值数据类型 字符串类型 散列类型 列表类型 集合类型 有序集合类型 Redis的特性 通过一个列子看出Mysql和Redis的存储区别 例如: (存储一篇文章,文章包括:标题(title),正文(content),阅读量(views),标签(tags)) 需求: 把数据存储在

Redis学习笔记4-Redis配置详解

原文:  http://blog.csdn.net/mashangyou/article/details/24555191 在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redis学习笔记中Redis的按照方式按照后,Redis的配置文件是/etc/redis/6379.conf.下面是Redis2.8.9的配置文件各项的中文解释. 1 #daemon

Redis学习笔记

Redis学习笔记:Redis是什么?redis是开源BSD许可高级的key-vlue存储系统可以用来存储字符串哈希结构链表.结构.集合,因此常用来提供数据结构服务. redis和memcache相比的独特之处:1.redis可以用来做存储,而memcache是用来做缓存 这个特点主要因为其有"持久化"的功能.2.存储的数据有"结构",对于memcache来说,存储的数据只有1种类型"字符串"而 redis则可以存储字符串.链表.哈希机构.集合.

(转)redis 学习笔记(1)-编译、启动、停止

redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版,目前最新版本是2.8.17 1.2 上传到linux,然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz 1.3 编译 cd redis-2.8.17make 注:make命令需要linux上安装gcc,若机器上未安装gcc,redhat环境下,如

Redis学习笔记4-Redis配置具体解释

在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redis学习笔记中Redis的依照方式依照后,Redis的配置文件是/etc/redis/6379.conf.以下是Redis2.8.9的配置文件各项的中文解释. #daemonize no 默认情况下, redis 不是在后台运行的.假设须要在后台运行,把该项的值更改为 yes daemonize ye