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ě)入值的