基本概念

参与复制的Redis实例划分为主节点(master)和从节点(slave)。Redis根据拓扑复杂性可以分为以下三种:一主一从、一主多从、树状主从结构。
Redis的一个master可以有多个slave,一个slave只能有一个master。数据的流向是单向的,总是从master到slave。
Redis的一个master可以有多个slave,一个slave只能有一个master。数据的流向是单向的,总是从master到slave。
Tips:slave从节点进行复制的时候会清除原有数据。

配置

命令方式

复制

假如现在有127.0.0.1:9000127.0.0.1:9001两台redis-server。

clipboard.png

要让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

clipboard.png

127.0.0.1:9001上:

127.0.0.1:9001 > get key

clipboard.png

可以看到复制成功了。

如果想一启动就开始复制:

$ 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

clipboard.png

可以看到复制成功了。

取消复制

从节点断开复制后不会抛弃原有数据,只是无法再获取主节点上的数据变化。
在从节点上:

> slaveof no one

BrownFly
18 声望1 粉丝

信息安全协会成员、Vidar-Team成员