這是一篇對(duì)Redis集群的入門介紹,這里不會(huì)使用復(fù)雜難懂的分步式系統(tǒng)概念。這里提供的指導(dǎo)有集群 的安裝、測(cè)試,和操作,不函蓋Redis集群規(guī)范中的細(xì)節(jié),而只是站在用戶的角度來描述系統(tǒng)的行為方式。

     這個(gè)教程試圖從最終用戶角度,以簡單易懂的方式來講解Redis集群高可用性和一至性的特點(diǎn)。

     注意,這個(gè)教程需要redis的版本為3.0及以上版本。

     如果你打算運(yùn)行更嚴(yán)格的Redis集群部屬,即使不是特別的需要 ,也非常建議閱讀正式的規(guī)范。當(dāng)然從這篇文檔開始也是不錯(cuò)的主意,花一些時(shí)間在Redis集群上,然后再閱讀規(guī)范。

Redis Cluster 101

     Redis集群提供 數(shù)據(jù)自動(dòng)分片到多個(gè)Redis節(jié)點(diǎn)的方式運(yùn)行Redis實(shí)例,Redis 集群在分區(qū)期間提供了一定程度的可用性,實(shí)際上是當(dāng)節(jié)點(diǎn)掛掉或不能通信時(shí)繼續(xù)運(yùn)行的能力。然而會(huì)在重大故障情況下Redis會(huì)停止運(yùn)行(eg.絕大多數(shù)的主節(jié)點(diǎn)不可用)

     在實(shí)際情況中,你想從Redis集群中得到什么呢?

     》自動(dòng)分割數(shù)據(jù)集到多個(gè)節(jié)點(diǎn)的能力

     》子節(jié)點(diǎn)故障或者不能和集群內(nèi)的其它節(jié)點(diǎn)通信時(shí),繼續(xù)運(yùn)行的能力

 

Rdis Cluster TCP 端口

     每個(gè)Redis集群節(jié)點(diǎn)需要打開兩個(gè)TCP連接。一個(gè)用于服務(wù)端和客戶端連接的一般端口,例好6379,另一個(gè)端口是通過數(shù)據(jù)端口加10000得到,這個(gè)例子中是16379。第二個(gè)較高的端口用于集群總線,這是一個(gè)使用二進(jìn)制協(xié)議端到端的通信通道。集群通道用于節(jié)點(diǎn)的故障偵查,配置更新,故障轉(zhuǎn)移授權(quán)等??蛻舳丝偸呛驼5腞edis命令端口通信 ,永遠(yuǎn)不要嘗試和集群總線通信.請(qǐng)確保你的防火墻開放這兩個(gè)端口,不然集群節(jié)點(diǎn)不能相互通信。

     命令端口和集群總線端口偏移是固定的,偏移量總是10000.

     注意為了Redis集群正常的工作,對(duì)每一個(gè)節(jié)點(diǎn):

     1.用于和客戶端通信的標(biāo)準(zhǔn)通信端口(通常是6379)對(duì)所有需要和聯(lián)系集群和集群其它節(jié)點(diǎn)(使用用于鍵遷移的客戶端端口) 的客戶端開放。

     2.集群總線端口(客戶端端口+10000)必須可以被集群的其它節(jié)點(diǎn)訪問到。

    

Redis集群和Docker

&nbs