redis發布 訂閱

2022-09-06 07:51:08 字數 2895 閱讀 8207

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

```linux

redis-server /opt/redis_conf/redis-6379.conf

確認redis-server是否啟動

[root@localhost 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

一號伺服器上登入,新建乙個發布者

```[root@localhost redis_conf]# redis-cli

127.0.0.1:6379> publish music 'shilian'

(error) noauth authentication required.

出現上述提示說明需要輸入密碼
[root@localhost 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

ok127.0.0.1:6379> publish music 'shilian'

(integer) 0

發布成功

在二號機器上用redis客戶端遠端連線一號機器的redis服務端,訂閱music頻道

遠端連線的格式為

redis-cli -h ip位址 -p 埠號

埠號為6379時可以省略不寫

[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> auth 123

ok192.168.1.17:6379> subscribe music

reading messages... (press ctrl-c to quit)

"subscribe"

"music"

(integer) 1

發布一條訊息

127.0.0.1:6379> publish music 'yasugongshang'

(integer) 2

檢視訂閱者接收情況

第乙個訂閱者

[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> auth 123

ok192.168.1.17:6379> subscribe music

reading messages... (press ctrl-c to quit)

"subscribe"

"music"

(integer) 1

"message"

"music"

"yasugongshang"

第二個訂閱者
[root@localhost ~]# redis-cli -h 192.168.1.17 -p 6379

192.168.1.17:6379> auth 123

ok192.168.1.17:6379> subscribe music

reading messages... (press ctrl-c to quit)

"subscribe"

"music"

(integer) 1

"message"

"music"

"yasugongshang"

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 以及訂閱這個頻道的三個客戶端 client2 client5 和 client1 之間的關係 當有新訊息通過 pu...

Redis 發布訂閱

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 publish 傳送訊息,訂閱者 subscribe 接收訊息。redis 客戶端可以訂閱任意數量的頻道。下圖是 頻道 channel1 以及訂閱這個頻道的三個客戶端 client1 client2和 client3 當有新訊息通過 ...

Redis發布訂閱

概述 redis發布訂閱 pub sub 是種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 訂閱訊息。redis客戶端可以訂閱任意數量的頻道。下圖展示了頻道channel以及訂閱它的三個客戶端 client2 client5和client1之間的關係 當有新的訊息publish到chann...