Redis5.0.4复制

redis的复制很简单,由于资源限制,本例中采用两台虚拟机,每台虚拟机安装两个redis实例,共四个来测试

一、安装redis

https://www.cnblogs.com/qq931399960/p/10616459.html

二、当前安装的redis分别为

192.168.102.69:6379 (master)

192.168.102.69:6380 (slave) 

192.168.102.52:6379 (slave)

192.168.102.52:6379 (slave)

三、配置主从复制

5.0版本使用REPLICAOF代替了之前版本的SLAVEOF,如果使用5.0及之后版本,则建议新命令REPLICAOF。

1、命令行方式

分别登录各slave redis命令行,执行auth xxx赋权,执行如下命令(重启之后无效)

REPLICAOF 192.168.102.69 6379
CONFIG SET masterauth 12345

若取消复制,则执行如下命令即可

REPLICAOF no one

2、配置方式(永久生效,本例中使用配置方式)

redis slave配置文件中添加如下配置,重启redis

replicaof 192.168.102.69 6379
masterauth 12345

若取消复制,只需要去掉上述配置,重启即可

四、验证

1、登录从实例,查看info

2、登录主实例,查看info

重启之后,replication id和offset会被重置

主实例添加key,从实例查询,已同步,ok

五、配置只有N个连接复制的时候才允许主实例写操作

该功能工作原理如下:

1、从实例每秒ping主实例,确认已处理的复制流的数量

2、redis主实例记住最后接收到的从实例ping的时间

3、用户配置从实例的最小数量在小于指定的最大延迟(秒)时间时可写。

该功能有两个配置控制(5.0版本之前replicas改为slaves)

min-replicas-to-write <number of slaves>  (默认0)
min-replicas-max-lag <number of seconds>  (默认10)

在redis master配置文件中添加配置

min-replicas-to-write 4
min-replicas-max-lag 10

意为,当至少4个slave连接master的延迟时间小于10秒时,主实例才可以进行写操作。

也可以通过命令行在重启之前生效

127.0.0.1:6379> CONFIG SET min-replicas-to-write 4
OK
127.0.0.1:6379> CONFIG GET min-replicas-to-write
1) "min-replicas-to-write"
2) "4"
127.0.0.1:6379> 

登录master,执行测试

猜你喜欢

转载自www.cnblogs.com/qq931399960/p/10638281.html