實現方式一:在從節點上執行 "slaveof 主節點ip 端口" 命令,如下命令都是在從節點的 redis 上面執行的。html
127.0.0.1:6379> slaveof 192.168.1.45 6379 -- 確保主節點(192.168.1.45)的防火牆規則是放行的,使用命令後自身數據會被清空,但取消slave只是中止複製,並不清空。 127.0.0.1:6379> slaveof no one -- 取消複製,從節點的庫不會清空舊數據,只是不從主庫那裏複製數據過來了。
實現方式二:修改配置文件,在從服務器的配置文件中加入:slaveof <masterip> <masterport>。該方案須要重啓redis從節點纔可生效,不建議使用。redis
# slaveof <masterip> <masterport> # replicaof <masterip> <masterport> slaveof 192.168.1.45 6379 # 方式一,鏈接主節點的ip、端口。 replicaof 192.168.1.45 6379 # 方式二,鏈接主節點的ip、端口。 masterauth 123456 # 若是主節點須要密碼認證,則須要加上這行。主節點密碼爲:123456。 slave-read-only yes # 設置從節點只讀不能寫,目的是維持主從節點數據一致性。這一行能夠不加。
實現方式三:在 redis-server 服務啓動命令後加入 --slaveof <masterip> <masterport>sql
查看命令:bash
127.0.0.1:6379> info replication -- 查看主從複製狀態。主節點客戶端和從節點客戶端均可以執行,能夠看到複製的一些信息。 127.0.0.1:6379> keys * -- 查看當前redis中的全部key。
注意事項服務器
replicaof 192.168.1.45 6379 # 使用 replicaof 參數對master進行指定,下面是密碼認證。 masterauth 123456 # 這是主節點 redis 服務的鏈接密碼。通常改這個就行,若是不行,就再添加上面的一行。
1、當執行切主指令後,slave發生了什麼?優化
所謂切主操做,無非就是直接從新指向另外一臺redis節點做爲新的master。即:slaveof ip portui
2、當斷開了主從複製關係,slave節點上發生了什麼?.net
http://www.javashuo.com/article/p-gsnnfcdr-mw.htmlcode
https://www.zbpblog.com/blog-167.htmlserver
https://zhuanlan.zhihu.com/p/112213386
https://www.cnblogs.com/mseddl/p/11470900.html