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