- 主從複製
a,方式一、新增redis6380.conf, 加入 slaveof 192.168.1.111 6379, 在6379啓動完後再啓6380,完成配置;
b,方式二、redis-server --slaveof 192.168.1.111 6379
c,查看狀態:info replication
d,斷開主從複製:在slave節點,執行6380:>slaveof no one
e,斷開後再變成主從複製:6380:> slaveof 192.168.1.111 6379
f,數據較重要的節點,主從複製時使用密碼驗證: requirepass
e,從節點建議用只讀模式slave-read-only=yes, 若從節點修改數據,主從數據不一致
h,傳輸延遲:主從一般部署在不同機器上,複製時存在網絡延時問題,redis提供repl-disable-tcp-nodelay參數決定是否關閉TCP_NODELAY,默認爲關閉
參數關閉時:無論大小都會及時發佈到從節點,佔帶寬,適用於主從網絡好的場景,
參數啓用時:主節點合併所有數據成TCP包節省帶寬,默認爲40毫秒發一次,取決於內核,主從的同步延遲40毫秒,適用於網絡環境複雜或帶寬緊張,如跨機房
2,主從拓撲:支持單層或多層
A,一主一從:用於主節點故障轉移從節點,當主節點的“寫”命令併發高且需要持久化,可以只在從節點開啓AOF(主節點不需要),這樣即保證了數據的安全性,也避免持久化對主節點的影響
B, 一主多從:針對“讀”較多的場景,“讀”由多個從節點來分擔,但節點越多,主節點同步到多節點的次數也越多,影響帶寬,也加重主節點的穩定
C,樹狀主從:一主多從的缺點(主節點推送次數多壓力大)可用些方案解決,
主節點只推送一次數據到從節點1,再由從節點2推送到11,減輕主節點推送的壓力。
- 複製原理
執行slave master port後,
與主節點連接,同步主節點的數據,6380:>info replication:查看主從及同步信息
- 數據同步:
redis 2.8版本以上使用psync命令完成同步,過程分“全量”與“部分”複製
全量複製:一般用於初次複製場景(第一次建立SLAVE後全量)
部分複製:網絡出現問題,從節佔再次連主時,主節點補發缺少的數據,每次 數據增加同步
心跳:主從有長連接心跳,主節點默認每10S向從節點發ping命令,repl-ping-slave-period控制發送頻率