Redis從單點到集群部署模式(單機模式?主從模式?哨兵模式)
導讀
redis 從單點 -> 集群總共有三個部署模式:單機模式,主從模式,哨兵模式,集群模式
單機模式
新手入門模式。單機模式意味著 Redis 是單點的,部署在一臺服務器,掛了就掛了,用在本地測試還可以,但是生產環(huán)境就算了。
優(yōu)勢
- 部署簡單
- 省錢,一臺服務器就可以了
- 不涉及主從復制等,數據強一致
劣勢
- 單點意味著穩(wěn)定性基本上為 0,掛了就掛了
- 吞吐量受限于單機資源
主從模式
當流量越來越大,單臺機器資源不能無限增長,就需要水平擴展到多個節(jié)點,使用多個節(jié)點分散承接讀流量。
主從模式為主節(jié)點承接寫流量,從節(jié)點承接讀流量,二者數據一致通過主節(jié)點異步復制(全量復制 / 增量復制)到從節(jié)點。
優(yōu)勢
- 讀流量被分攤到多個節(jié)點上,讀流量支持力度變大
- 當主節(jié)點宕機/不可用時,可以手動切換主節(jié)點繼續(xù)提供服務
劣勢
- 當主節(jié)點宕機/不可用時手動切換節(jié)點,切換過程中 redis (主節(jié)點)不可用,并且會丟失主節(jié)點 / 從節(jié)點之間未同步的數據
- 穩(wěn)定性還是不夠,依賴手動切換。不適用于生產。
- 寫流量還是讓主節(jié)點獨自承受,寫流量還是靠單機資源支撐
哨兵模式
哨兵模式主要解決主從模式中手動切換的部分,本質上哨兵代替了人,通過 gossip 協(xié)議監(jiān)控主節(jié)點的健康情況。
優(yōu)勢
- 不用手動切換主節(jié)點了,切換過程中雖然 redis 也是不可用的,但是這個時間會極大的降低
劣勢
- sentinel 與主節(jié)點多了一層心跳檢測,有可能 sentinel 與主節(jié)點的網絡抖動導致重新選舉主節(jié)點。
- redis 主從節(jié)點吞吐因心跳檢測可能稍微降低。
集群模式
集群模式主要解決了兩個問題:寫流量水平擴展 & 哨兵與主節(jié)點的網絡抖動。
集群模式主要的架構為:主節(jié)點平分 16384 個槽,集群支持主節(jié)點的動態(tài)上線/下線(需要 rehash),主節(jié)點與從節(jié)點通過心跳關聯(lián),主節(jié)點失聯(lián)后從節(jié)點有權發(fā)起選舉成為主節(jié)點(raft 算法)。
優(yōu)勢
- 自管理集群內主從節(jié)點上下線,減少因外部集群網絡抖動之類的發(fā)起的無效選舉
- 數據按照 slot 存放在多個節(jié)點,客戶端通過服務端主節(jié)點的重定向跳轉到具體的槽,可動態(tài)調整數據分布
- 減少了集群整體不可用的概率,某一主節(jié)點宕機只影響一部分數據的訪問
- 寫流量 & 數據平分到多個節(jié)點,集群的寫請求瓶頸得到緩解
劣勢
- 集群間狀態(tài)同步使用 gossip 協(xié)議,節(jié)點數較多存在較多的心跳網絡流量
- 主節(jié)點的上線/下線需要進行 rehash ,當節(jié)點內數據較多耗時較長
redis 節(jié)點間復制有兩種:全量復制 & 部分復制
全量復制
出現(xiàn)場景
- 從節(jié)點剛上線需要同步主節(jié)點的數據
- 從節(jié)點切換腦裂后從節(jié)點偏移量與主節(jié)點不一致的時間點
- 從節(jié)點偏移量不在主節(jié)點的復制緩沖區(qū)中
過程
- 從節(jié)點向主節(jié)點發(fā)起同步數據的請求
- 主節(jié)點通過 bgsave 形成當前數據的快照,發(fā)給從節(jié)點
- 從節(jié)點刪除歷史數據,加載主節(jié)點發(fā)過來 RDB 文件
- 從節(jié)點拉取主節(jié)點緩沖區(qū)數據,加載到自身的內存中,并更新當前的偏移量
部分復制
出現(xiàn)場景
- 全量復制出現(xiàn)場景之外的場景
- 主從日常復制
過程
- 主節(jié)點將命令同步到緩沖區(qū)(AOF)
- 從節(jié)點拉取緩沖區(qū)數據,更新到自身的節(jié)點中,并更新當前的偏移量
以上就是Redis從單點集群部署模式(單機模式 主從模式 哨兵模式)的詳細內容,更多關于Redis單點集群部署模式的資料請關注腳本之家其它相關文章!
相關文章
Redis Cluster集群收縮主從節(jié)點詳細教程
集群收縮的源端就是要下線的主節(jié)點,目標端就是在線的主節(jié)點,這篇文章主要介紹了Redis Cluster集群收縮主從節(jié)點詳細教程,需要的朋友可以參考下2021-11-11
Redis分布式鎖升級版RedLock及SpringBoot實現(xiàn)方法
這篇文章主要介紹了Redis分布式鎖升級版RedLock及SpringBoot實現(xiàn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

