複製集群 &.主從模式 (讀寫分離) 主從模式原理 集群運作原理 Redis主從複製預設讀寫分離(主寫從讀). 單點故障時,預設的容災機制可以實現快速故障恢復(單點/多點故障). 主從集群說明 (優點) 易擴展 (可以動態的添加增加從機) (優點) 讀寫分離 (主寫從讀) (缺點) 複製延遲 (寫操 ...
複製集群
&.主從模式 (讀寫分離)
集群運作原理 Redis主從複製預設讀寫分離(主寫從讀). 單點故障時,預設的容災機制可以實現快速故障恢復(單點/多點故障). 主從集群說明 (優點) 易擴展 (可以動態的添加增加從機) (優點) 讀寫分離 (主寫從讀) (缺點) 複製延遲 (寫操作均由主機完成,從機過多數據同步慢) (缺點) 可用性差 (主機故障需手動選舉新主機,此間寫操作異常) |
![]() |
(1) 準備集群主機: 安裝配置n台Redis伺服器(n>=1),配置方式參考Redis6.2安裝配置.
(2) 搭建主從集群: 從n台Redis主機中任選n-1台作為從機. 逐個連接從機,對從機進行主從關係配置(如下).
slaveof <master_ip> <master_port> # 將當前Redis主機配置為指定Redis主機的從機.
info replication # 查看當前Redis主機的信息(role值從master改為slave即成功)
[多級從機] 除以上配置外,還可以為從機配置從機 (在從機的從機上通過
slaveof <slave_ip> <slave_port>
命令配置).
[切換主機] 在主機故障時,也可以手動將指定從機提升為集群的主機 (在指定從機上通過執行slaveof no one
命令進行切換).
&.哨兵模式 (+高可用)
集群運作原理 Redis哨兵模式中,哨兵主機會監控主從集群中的主機和所有從機,當主機故障時,哨兵主機會根據選舉規則自動選舉新主機. 當原主機故障重連後,則以從機身份重新接入集群. 哨兵集群說明 (優點) 易擴展 (可以動態的添加增加從機) (優點) 高可用 (主機故障時,會選舉新主機來保證讀寫正常) (缺點) 複製延遲 (寫操作均由主機完成,從機過多數據同步慢) |
![]() |
(1) 配置主從集群: 安裝配置n台Redis伺服器,並建立出主從關係.
(2) 配置哨兵主機: 為Redis主從集群添加哨兵伺服器(最少1台),用於對主從關係進行監控和自動切換.
# sentinel.conf文件中寫入如下內容,其中1為至少有多少個哨兵同意遷移的數量
sentinel monitor <master_name> <master_ip> <master_port> 1
(3) 啟動哨兵主機: 啟動方式如下,啟動後介面連接哨兵集群,連接入口為主機和從機 (同主從集群).
redis-sentinel /etc/redis/sentinel.conf # 啟動哨兵伺服器
分片集群 (+負載均衡)
集群運作原理 Redis分片集群中,數據會根據slot分片存儲到不同的複製集群中(每組複製集群存儲總數據的1/n,n為複製集群數量). 分片集群說明 (優點) 易擴展 (無中心化,配置相對簡單) (優點) 高可用 (複製集群故障僅導致部分數據不可用) (優點) 高負載 (讀寫分離、分片存儲等特性實現負載均衡) (缺點) 不支持lua腳本 (缺點) 不支持多鍵操作和多鍵的Redis事務 |
![]() |
(1) 準備集群主機: 安裝配置n台Redis主機(n>=3),在每台主機的redis.conf中都啟用如下配置,然後啟動.
# 啟用集群模式
cluster-enabled yes
# 設置節點的配置文件名
cluster-config-file nodes-6379.conf
# 設置節點的超時時間 (毫秒),超時自動進行主從選舉
cluster-node-timeout 15000
# 關閉集群全覆蓋,開啟時有一個slot的主從全故障則集群整體故障 (關閉時僅故障slot不可用)
cluster-require-full-coverage no
(2) 搭建分片集群: 從n台Redis主機中任選一臺輸入如下指令,引導工具會自動生成架構方案,選yes進行配置即可.
# 將集群中所有主機的ip和埠都通過該命令進行指定(本例中為n台),
# @<number> 集群中每個主節點對應幾個從節點.
# @<ip:port> ip必須為Redis主機的真實ip,不能是本地迴環地址.
redis-cli --cluster create --cluster-replicas <number> <ip:port> [<ip:port> ...]
(3) 集群連接測試: 連接集群中的任意一臺主機(去中心化,任意主機都可作為集群連接入口).
cluster nodes # 查看分片集群中所有節點的信息