基本概念
参与复制的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 9001
127.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.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
可以看到复制成功了。
取消复制
从节点断开复制后不会抛弃原有数据,只是无法再获取主节点上的数据变化。
在从节点上:
> slaveof no one
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。