Redis主從復制是指將一個Redis實例(主節點)的數據復制到另一個Redis實例(從節點)的過程。主從復制的工作流程如下:
- 主節點將自己的數據變更操作記錄到內存的命令緩沖區中,同時將這些操作記錄發送給所有從節點。
- 從節點接收到主節點發送的數據變更操作記錄后,將這些操作記錄依次執行,使自己的數據與主節點的數據保持一致。
- 從節點定期發送一個ACK(確認)給主節點,主節點收到從節點的ACK后會記錄從節點的復制偏移量,用于在斷線重連后繼續復制數據。
- 當從節點發生斷線或重連時,它會向主節點發送一個PSYNC(部分同步)請求,主節點會根據從節點的復制偏移量發送缺失的數據給從節點,使從節點可以繼續復制數據。
- 當從節點復制數據的延遲達到一定的閾值時,主節點會將從節點標記為不可用,并不再向其發送數據變更操作,直到從節點恢復正常。
通過主從復制,可以實現數據的備份、負載均衡和故障恢復等功能,提高Redis系統的可用性和穩定性。