轉載請註明出處哈:http://carlosfu.iteye.com/blog/2254154node
因爲演講時間有限,有關Redis-Cluster,演講者沒作太多介紹,簡單的介紹了一些Redis-Cluster概念做用和遇到的兩個問題,咱們在Redis-Cluster也有不少運維經驗,未來的文章會介紹。redis
可是講演者反覆強調,不要聽信網上對於Redis-Cluster的毀謗(實踐出真知),對於這一點我很贊同,咱們從Redis-Cluster beta版 RC1~4 到如今的3.0-release均沒有遇到什麼大問題(線上維護600個實例)。緩存
1、Redis-Cluster網絡
有關Redis-Cluster的詳細介紹有不少這裏就很少說了,能夠參考:架構
1. redis-cluster研究和使用app
3. 本博客的一些Redis-Cluster的介紹(未更新完畢)分佈式
4. Redis設計與實現那本書(做者:黃建宏):很是的推薦看這本書。ide
總之Redis-Cluster是一個無中心的分佈式Redis存儲架構,解決了Redis高可用、可擴展等問題。oop
2、兩個問題:
1. Redis-Cluster主從節點不要在同一個機器部署
(1) 以咱們的經驗看redis實例自己基本不會掛掉,一般是機器出了問題(斷電、機器故障)、甚至是機架、機櫃出了問題,形成Redis掛掉。
(2) 若是Redis-Cluster的主從都在一個機器上,那麼若是這臺機器掛了,主從所有掛掉,高可用就沒法實現。(若是full converage=true,也就意味着整個集羣掛掉)
(3) 一般來說一對主從所在機器:不跨機房、要跨機架、能夠在一個機櫃。
2. Redis-Cluster誤判節點fail進行切換
(1) Redis-Cluster是無中心的架構,判斷節點失敗是經過仲裁的方式來進行(gossip和raft),也就是大部分節點認爲一個節點掛掉了,就會作fail斷定。
(2) 若是某個節點在執行比較重的操做(flushall, slaveof等等)(可能短期redis客戶端鏈接會阻塞(redis單線程))或者因爲網絡緣由,形成其餘節點認爲它掛掉了,會作fail斷定。
(3) Redis-Cluster提供了cluster-node-timeout這個參數(默認15秒),做爲fail依據(若是超過15秒仍是沒反應,就認爲是掛掉了),具體能夠參考這篇文章:Redis-Cluster的FailOver失敗案例分析
以咱們的經驗看15秒徹底夠用。
3、將來要介紹的問題:
1. Redis-Cluster客戶端實現Mget操做。
2. Redis-Cluster--Too many Cluster redirections異常。
3. Redis-Cluster無底洞問題解析。
4. 兩個Redis-Cluster集羣,meet操做問題後的惡果。
5. Redis-Cluster配置之full converage問題。
7. Redis-Cluster經常使用運維技巧。
8. Redis-Cluster一鍵開通。
9. Redis-Cluster客戶端jedis詳解。
4、附贈一些不錯的資料: