參與複製的Redis實例劃分爲主節點(master)和從節點(slave)。Redis根據拓撲復雜性能夠分爲如下三種:一主一從、一主多從、樹狀主從結構。
Redis的一個master能夠有多個slave,一個slave只能有一個master。數據的流向是單向的,老是從master到slave。
Redis的一個master能夠有多個slave,一個slave只能有一個master。數據的流向是單向的,老是從master到slave。
Tips:slave從節點進行復制的時候會清除原有數據。redis
假如如今有127.0.0.1:9000
和127.0.0.1:9001
兩臺redis-server。vim
要讓127.0.0.1:9001
複製127.0.0.1:9000
。即127.0.0.1:9000
爲主節點,127.0.0.1:9001
爲從節點:spa
$ redis-cli -h 127.0.0.1 -p 9001 127.0.0.1:9001 > slaveof 127.0.0.1 9000
在127.0.0.1:9000
上:code
127.0.0.1:9000 > set key hello
在127.0.0.1:9001
上:server
127.0.0.1:9001 > get key
能夠看到複製成功了。ip
若是想一啓動就開始複製:get
$ redis-server xxx.conf --slaveof {masterHost} {masterPort}
$ vim redis-9001.conf daemonize yes port 9001 dir "/opt/redis/data" logfile "9001.file" slaveof 127.0.0.1 9000 slave-read-only yes # 只讀方式 $ redis-server redis-9001.conf $ redis-cli -h 127.0.0.1 -p 9001 127.0.0.1:9001> get key
能夠看到複製成功了。it
從節點斷開復制後不會拋棄原有數據,只是沒法再獲取主節點上的數據變化。
在從節點上:ast
> slaveof no one