redis集群主從節點自動切換

2021-10-06 17:01:23 字數 576 閱讀 8397

最近在將redis作為資料庫使用(redis中存放大量資料)的專案中,偶然發現redis的主從節點發生了變化,但是沒有任務報錯,redis集群的各節點也沒有fail狀態,因此記錄學習一下,redis的深層機制。

首先redis是單執行緒的,所有的命令傳送的redis會進入乙個佇列,依次執行。當資料量很大時,執行flushall、keys、scan等耗時較長的命令時,就會照成redis節點阻塞。

其次,了解一下redis的集群節點檢測機制。redis集群的其他節點,每隔一斷時間,就會向集群中的其他節點傳送ping包,以檢測節點是否還活著。如果此時,某個主節點阻塞了,收到pong包的時間超時,大於 cluster-node-timeout,就會自動切換主從節點。此時,在redis-cli中檢視cluster nodes,會發現節點會短暫的出現fail狀態。當主從節點切換完畢,redis又會重新掃瞄一下集群中的所有redis節點,當阻塞的redis節點,執行完之後,又會重新回到正常狀態。

了解了上面說的redis機制之後,如果想要避免redis節點自動切換就很簡單了,只需要調大redis.conf中的配置項cluster-node-timeout(預設15000 millisec)即可。

Redis集群 主從複製

從伺服器向主伺服器傳送sync 同步 請求。主伺服器收到這個請求之後,這個時候就不是單執行緒啦 開始生成rdb 快照檔案 並且使用緩衝區記錄之後所有的寫操作命令。快照檔案生成完畢之後,主伺服器,向從伺服器傳送快照檔案,這期間也繼續記錄執行過的寫命令。從伺服器接收快照檔案完畢之後,丟棄舊資料,載入快照...

Redis集群(主從複製)

主從複製 主從複製原理 redis集群中有很多redis伺服器,這些reids伺服器分為主伺服器和從伺服器。從伺服器會向主伺服器傳送命令 sync命令。主伺服器接收到sync命令後,開始執行gbs e命令生成rdb檔案 快照檔案 並使用緩衝區來記錄此後的寫命令 主伺服器gbs e命令執行完畢後,會將...

keepalived LVS集群(主從)

環境10.0.0.134 dr1 負載均衡器 10.0.0.133 dr2 負載均衡器 10.0.0.131 rs1 web1 10.0.0.128 rs2 web2 10.0.0.11 vip配置 1.在master上安裝配置keepalived yum y install keepalived ...