1. 程式人生 > >redis發布/訂閱

redis發布/訂閱

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發布/訂閱