理解并從頭搭建redis集群
部分開發(fā)人員工作當(dāng)中只是在應(yīng)用中使用redis,比如用來做數(shù)據(jù)結(jié)果的緩存。而且現(xiàn)在有很多不錯(cuò)的redis客戶端工具(redisson),基本上可以不用關(guān)注redis命令就可以完成相當(dāng)部分的功能。所以可能會(huì)對(duì)如下這些問題關(guān)注點(diǎn)不夠:
如何容災(zāi)?即某個(gè)redis節(jié)點(diǎn)出了問題如何保證服務(wù)的高可用性
如何橫向擴(kuò)容?當(dāng)數(shù)據(jù)量特別大時(shí),如何解決單個(gè)redis的性能問題
集群至少需要幾臺(tái)機(jī)器?或者幾個(gè)redis節(jié)點(diǎn)
集群搭建都利用什么技術(shù),哪些工具?
如何容災(zāi)?
redis提供了主從熱備機(jī)制,主服務(wù)器的數(shù)據(jù)同步到從服務(wù)器,通過哨兵實(shí)時(shí)監(jiān)控主服務(wù)器狀態(tài)并負(fù)責(zé)選舉主服務(wù)器。當(dāng)發(fā)現(xiàn)主服務(wù)器異常時(shí)根據(jù)一定的算法重新選舉主服務(wù)器并將問題服務(wù)器從可用列表中去除,最后通知客戶端。主從是一對(duì)多的樹型結(jié)構(gòu),如下圖:
哨兵
哨兵是sentinel的中文名稱,是redis出的一個(gè)高可用架構(gòu)的工具,自身是一個(gè)獨(dú)立的進(jìn)程,可以同時(shí)監(jiān)控一個(gè)以上的redis集群。