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 auth-pass mymaster 123456 #如果你的redis叢集有密碼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.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了。
接下來的測試有問題,正在解決。。。