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 的大小也有關