1. 程式人生 > >redis的哨兵模式測試

redis的哨兵模式測試

上篇文章我們說到,一主二從的模式,如果主機掛掉,從機等待主機連上之後,繼續成為主機的slave。

但是這樣會影響我們業務的正常運轉呀,我們怎麼來做呢?

目前的我的伺服器:

192.128.116.128 6379為主:

192.128.116.129 6380為從:

192.128.116.130 6381為從:

現在我們讓主機掛掉

另外兩臺從機在等待,我們在一臺從機6380上執行命令 SLAVEOF no one,

讓他中斷主從關係,成為master

讓另外一臺從機 6381 SLAVEOF 192.168.116.129 6380

這樣的話,6380和6381兩臺機器之間成為主從關係,即使6379重連上了,也和80 81沒關係。


這樣的話,一主二從,主機掛了,從機執行相關命令反客為主,原來的兩臺從機之間形成一個主從關係。

但是這樣需要我們手動去操作,不是自動化的,當然不可取啦,下面引入redis的哨兵模式,哨兵模式的文件看這裡

恢復之前的一主二從模式

1、我們分別進入三臺機器 cd /usr/local/src/redis-4.0.9

cp sentinel.conf sentinel_bak.conf

rm -rf sentinel.conf

vim sentinel.conf

sentinel monitor mymaster 192.168.116.128 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
#sentinel auth-pass mymaster 123456  #如果你的redis叢集有密碼

把上面這個給寫進去 sentinel.conf 裡,注意

192.168.116.128是我的主機的ip,這個因人而異了,當然你可以寫127.0.0.1

三臺伺服器做一樣的工作,當然可以用scp。

準備工作都完成之後,三臺機器都啟動redis,

 ./redis-server ../redis.conf ,啟動完成之後,就是

一主(192.168.116.128 6379)二從(192.168.116.128 6380   192.168.116.128 6381)

然後再分別啟動sentinel服務,./redis-sentinel ../sentinel.conf


可以看到master是192.168.116.128 6379


這裡也能看到,master是128,下面有兩個slave,分別是129 130,這時我們把主機停掉


觀察sentinel裡日誌的變化,稍微等待一會


發現經過重新選舉之後,192.168.116.129 6380 為master了。

我們來看下 6380 和 6381裡的 info replication 資訊

6380:可以看到,這臺從機經過選舉變成了 master了。


接下來的測試有問題,正在解決。。。