repl-ping-slave-period主從心跳ping的時間間隔。預設10
repl-timeout 從節點逾時時間。預設60
repl-backlog-size 主節點儲存記錄檔的大小。預設1M
repl-backlog-ttl 主節點儲存記錄檔的時間。預設3600秒
client-output-buffer-limit 這個參數分為3部分,第二部分涉及slave。表示主節點輸出給從節點的緩存(output-buffer)大小。預設是:256M 64M 60秒。意思是:如果output-buffer>256M則從節點需要重新全同步,如果256>output-buffer>64且持續時間60秒,則從節點需要重新全同步。
主從同步的健康監控項(info Replication ):
主節點:
master_repl_offset 主節點backlog偏移量
slave0: offset 從節點backlog偏移量
master_repl_offset-offset master_repl_offset與offset的差量為延遲backlog
從節點:
master_last_io_seconds_ago 從節點逾時時間
從網絡斷開到恢複後。slave redis 重新連結上主庫。判斷是否需要做全同步,或者是增量恢複的流程圖如下:

1. repl-timeout 從節點逾時時間。逾時了會怎樣?
逾時了,從節點會直接重新同步一份主節點的完整資料。沒有逾時,則根據其他參數還可能同步增量資料而已。
2. client-output-buffer-limit 這個參數分為3部分,第二部分涉及slave。表示主節點輸出給從節點的緩存(output-buffer)大小。緩沖區裡放的是什麼?
這個參數針對有從庫的主節點,output-buffer緩沖區裡放的是主庫待同步給從庫的操作資料。
3. repl-backlog-size 主節點儲存記錄檔的大小。這個和client-output-buffer-limit有什麼關聯關系嗎?
針對有從庫的主節點,repl-backlog-size 設定主節點緩存操作資料的可用大小。如果網絡阻塞,主節點操作資料未同步給從節點而積累在緩沖區,這個緩沖區大小超過repl-backlog-size 。網路恢複之後,slave節點就必須重新從主節點同步一份完整資料。
client-output-buffer-limit 和 repl-backlog-size沒有什麼緊密關聯。
redis 4.0 從節點需要停止一段時間的時候,可以設定 repl-backlog-ttl 為0 。不釋放backlog的内容,這樣啟動slave的時候 可以部分同步。當然與repl-backlog-size client-output-buffer-limit 的大小也有關