1.规划
(这里使用多实例来演示redis主从复制部署:redis多实例部署-优快云博客)
192.168.60.10:7001 主
192.168.60.10:7002 从:默认只读
(redis主从复制是基于异步的方式进行数据同步且支持一主多从)
2.配置主从复制
只需要修改从服务器的一行配置就行
[root@redis data]# vim /opt/7002/conf/redis.conf
replicaof 192.168.60.10 7001
[root@redis data]# redis-cli -h 192.168.60.10 -p 7002 shutdown #重启
[root@redis data]# redis-server /opt/7002/conf/redis.conf
[root@redis data]# netstat -anlp | grep redis #查看进程
配置成功,可以看到主从之间是有tcp连接的
从 ——> 主
38973 7001
主 <—— 从
7001 38973
3.验证
(从是只读的,不能写入)
4.查看主从状态
主:
[root@redis data]# redis-cli -h 192.168.60.10 -p 7001
192.168.60.10:7001> info replication
从:
[root@redis data]# redis-cli -h 192.168.60.10 -p 7002
192.168.60.10:7002> info replication
5.主从切换
(1)将从服务器提升为主
(从提升为主很简单,只需要一条命令就行)
[root@redis data]# redis-cli -h 192.168.60.10 -p 7001 shutdown #关闭主
[root@redis data]# redis-cli -h 192.168.60.10 -p 7002
192.168.60.10:7002> INFO replication #可以看到和主的连接已经down掉了
192.168.60.10:7002> SLAVEOF no one #将redis节点从从节点转为独立主节点
[root@redis /]# vim /opt/7002/conf/redis.conf #修改配置
[root@redis /]# redis-cli -h 192.168.60.10 -p 7002 shutdown #重启
[root@redis /]# redis-server /opt/7002/conf/redis.conf
[root@redis /]# netstat -tunlp | grep redis #查看进程
启动成功!
(2)将之前的主服务器转换为从
[root@redis /]# vim /opt/7001/conf/redis.conf
replicaof 192.168.60.10 7002
[root@redis /]# redis-cli -h 192.168.60.10 -p 7001 shutdown #重启
[root@redis /]# redis-server /opt/7001/conf/redis.conf
[root@redis /]# netstat -tunlp | grep redis #查看进程
[root@redis /]# netstat -anlp | grep redis
(3)查看主从状态
[root@redis /]# redis-cli -h 192.168.60.10 -p 7001
192.168.60.10:7001> info replication
[root@redis /]# redis-cli -h 192.168.60.10 -p 7002
192.168.60.10:7002> info replication
主从切换成功!