redis哨兵是保證了redis的高可用,在redis主服務(wù)器down掉之后,選舉從服務(wù)器成為新的redis主服務(wù)器,當(dāng)之前的down掉的主服務(wù)器重連之后,會(huì)變成新主的從。
那么,在主down了后,到選舉出新的主redis的這段時(shí)間內(nèi),redis究竟還能不能成功寫(xiě)入值?
做個(gè)小實(shí)驗(yàn)
實(shí)驗(yàn)環(huán)境
ubuntu18.04
redis 4.0.9
php 5.6
搭建一個(gè)1主2從,主port 6379,兩個(gè)從6380,6381
3個(gè)哨兵 port分別是26379,26380,26381
用php作為客戶(hù)端,連接redis,這里設(shè)置的key是time,value是當(dāng)前時(shí)間戳,實(shí)驗(yàn)過(guò)程如下
(1)把redis主 手動(dòng)kill掉
(2)用php連接redis,看是否能成功設(shè)置值
先測(cè)試php腳本,腳本代碼如下

(1)php成功連接redis并成功設(shè)置值,腳本沒(méi)問(wèn)題(ip和port是當(dāng)前redis的主服務(wù)器信息)

(2)把redis主 手動(dòng)kill掉

(3)再次運(yùn)行php腳本,發(fā)現(xiàn)redis依舊是返回舊的master 的ip和端口,并且連接失敗

(4)等選舉過(guò)程完成后,新的master出現(xiàn)了,服務(wù)才再次可用,新的主port是6380

結(jié)論:在redis主down掉之后,到選舉新的master期間,redis服務(wù)是不能成功寫(xiě)入值的