发布订阅简介
Redis 发布订阅 (pub/sub) 是一种消息通信模式: 发送者 (pub) 发送消息, 订阅者 (sub) 接收消息, 消息之间通过 channel 传递.
准备工作
两台安装了 Redis 的机器(虚拟机), 一号机器上运行一个 Redis 服务端和一个发布者客户端, 二号机器上运行多个订阅者客户端
配置文件
在一号服务器的 /opt/redis_conf/ 目录下新建一个 Redis-6379.conf 配置文件, 写入如下内容:
- # 端口
- port 6379
- # 是否后台运行
- daemonize yes
- # pid 文件的存放路径
- pidfile /data/6379/Redis.pid
- # 日志级别
- loglevel notice
- # 日志文件路径
- logfile "/data/6379/redis.log"
- # 数据保存路径
- dir /data/6379
- # 是否开启保护模式, 保护模式开启后远程客户端无法连接此服务端
- protected-mode no
- # 密码
- requirepass 123
将二号服务器的 Redis 配置文件的 bind 127.0.0.1 改为:
bind 192.168.1.17 # 一号服务器的 ip 地址
在一号服务器上启动 Redis-server
Redis-server /opt/redis_conf/Redis-6379.conf
确认 Redis-server 是否启动
- [[email protected] redis_conf]# ps -ef | grep Redis
- root 31308 1 0 17:07 ? 00:00:00 Redis-server *:6379 # 说明成功启动了
- root 31316 10855 0 17:07 pts/2 00:00:00 grep --color=auto Redis
一号服务器上登录, 新建一个发布者
- [[email protected] redis_conf]# Redis-cli
- 127.0.0.1:6379> PUBLISH music 'shilian'
- (error) NOAUTH Authentication required.
出现上述提示说明需要输入密码
- [[email protected] redis_conf]# Redis-cli
- 127.0.0.1:6379> PUBLISH music 'shilian'
- (error) NOAUTH Authentication required.
- 127.0.0.1:6379>
- 127.0.0.1:6379>
- 127.0.0.1:6379> AUTH 123
- OK
- 127.0.0.1:6379> PUBLISH music 'shilian'
- (integer) 0
发布成功
在二号机器上用 Redis 客户端远程连接一号机器的 Redis 服务端, 订阅 music 频道
远程连接的格式为
Redis-cli -h ip 地址 -p 端口号
端口号为 6379 时可以省略不写
- [[email protected] ~]# Redis-cli -h 192.168.1.17 -p 6379
- 192.168.1.17:6379> auth 123
- OK
- 192.168.1.17:6379> SUBSCRIBE music
- Reading messages... (press Ctrl-C to quit)
- 1) "subscribe"
- 2) "music"
- 3) (integer) 1
发布一条消息
- 127.0.0.1:6379> PUBLISH music 'yasugongshang'
- (integer) 2
查看订阅者接收情况
第一个订阅者
- [[email protected] ~]# Redis-cli -h 192.168.1.17 -p 6379
- 192.168.1.17:6379> auth 123
- OK
- 192.168.1.17:6379> SUBSCRIBE music
- Reading messages... (press Ctrl-C to quit)
- 1) "subscribe"
- 2) "music"
- 3) (integer) 1
- 1) "message"
- 2) "music"
- 3) "yasugongshang"
第二个订阅者
- [[email protected] ~]# Redis-cli -h 192.168.1.17 -p 6379
- 192.168.1.17:6379> AUTH 123
- OK
- 192.168.1.17:6379> SUBSCRIBE music
- Reading messages... (press Ctrl-C to quit)
- 1) "subscribe"
- 2) "music"
- 3) (integer) 1
- 1) "message"
- 2) "music"
- 3) "yasugongshang"
来源: http://www.bubuko.com/infodetail-3016101.html