linux centos 7下實現redis主從複製
先看安裝過程:
http://blog.csdn.net/fyihdg/article/details/79131879
1. 主從複製
a,方式一、新增redis6380.conf,加入 slaveof192.168.1.1116379, 在6379啟動完後再啟6380,完成配置;
b,方式二、redis-server--slaveof 192.168.1.111 6379
c,檢視狀態:inforeplication
d,斷開主從複製:在slave節點,執行6380:>slaveofno 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,減輕主節點推送的壓力。
1. 複製原理
執行slavemaster port後,
與主節點連線,同步主節點的資料,6380:>info replication:檢視主從及同步資訊
3,資料同步:
redis 2.8版本以上使用psync命令完成同步,過程分“全量”與“部分”複製
全量複製:一般用於初次複製場景(第一次建立SLAVE後全量)
部分複製:網路出現問題,從節佔再次連主時,主節點補發缺少的資料,每次 資料增加同步
心跳:主從有長連線心跳,主節點預設每10S向從節點發ping命令,repl-ping-slave-period控制傳送頻率
此時目錄結構:
redis6380.conf直接是複製redis.conf,只需要在redis6380.conf加上:
slaveof 192.168.177.168 6379
但要注意,要把#requirepass 123456註釋了,否則會出現下面問題:
然後依次啟動:
./redis-server redis.conf &
./redis-server redis6380.conf &
就可以,是不是很簡單?
這樣就完成了