redis發布/訂閱
阿新 • • 發佈:2019-04-08
cal 之間 技術分享 red 保護模式 evel 發布訂閱 安裝 require
發布訂閱簡介
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"
redis發布/訂閱