参与复制的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