基本概念
参与复制的Redis实例划分为主节点(master)和从节点(slave)。Redis根据拓扑复杂性可以分为以下三种:一主一从、一主多从、树状主从结构。
Redis的一个master可以有多个slave,一个slave只能有一个master。数据的流向是单向的,总是从master到slave。Redis的一个master可以有多个slave,一个slave只能有一个master。数据的流向是单向的,总是从master到slave。Tips:slave从节点进行复制的时候会清除原有数据。配置
命令方式
复制
假如现在有127.0.0.1:9000
和127.0.0.1:9001
两台redis-server。
要让127.0.0.1:9001
复制127.0.0.1:9000
。即127.0.0.1:9000
为主节点,
127.0.0.1:9001
为从节点: $ redis-cli -h 127.0.0.1 -p 9001127.0.0.1:9001 > slaveof 127.0.0.1 9000
在127.0.0.1:9000
上:
127.0.0.1:9000 > set key hello
在127.0.0.1:9001
上:
127.0.0.1:9001 > get key
可以看到复制成功了。
如果想一启动就开始复制:
$ redis-server xxx.conf --slaveof {masterHost} {masterPort}
配置文件
$ vim redis-9001.confdaemonize yesport 9001dir "/opt/redis/data"logfile "9001.file"slaveof 127.0.0.1 9000slave-read-only yes # 只读方式$ redis-server redis-9001.conf$ redis-cli -h 127.0.0.1 -p 9001127.0.0.1:9001> get key
可以看到复制成功了。
取消复制
从节点断开复制后不会抛弃原有数据,只是无法再获取主节点上的数据变化。
在从节点上:> slaveof no one