一、什么是Redis7的主从复制
Redis 的主从复制是一种数据复制机制,用于在多个 Redis 服务器之间实现数据同步。
-
master以写为主,Slave以读为主
-
当master数据变化的时候,自动将新的数据异步同步到其它slave数据库
二、主从复制的四种模式
前置操作
①准三台centos虚拟机IP分别为: 129、131、131
②恢复Redis的配置为原始配置
cd /java/redis/redis-7.0.2/
cp redis.conf /root/myredis/redisNeW.conf
2.1 一主二仆
配置步骤
①配置 IP:129 的Redis
2.1.1 开启daemonize yes
2.1.2 注释掉bind 127.0.0.1
2.1.3 protected-mode no
2.1.4 指定端口
2.1.5 指定当前工作目录,dir
2.1.6. pid文件名字,pidfile
2.1.7 log文件名字,logfile
2.1.8 requirepass 123456
2.1.9 dump.rdb名字
② 配置 IP:131 的Redis
2.2.1 将129的redis配置拷贝到131里面
scp /root/myredis/redisNew.conf root@192.168.118.131:/root/myredis
修改文件名为redis131.conf
2.2.2 replicaof
2.2.3 指定端口 6381
2.2.4 配置主机密码 masterauth 123456
③配置 IP:132 的Redis
2.3.1 将129的redis配置拷贝到132里面
scp /root/myredis/redisNew.conf root@192.168.118.132:/root/myredis
修改文件名为redis132.conf
2.3.2 replicaof
2.3.3 指定端口 6382
2.3.4 配置主机密码 masterauth 123456
④具体演示
2.4.1启动129的Redis
cd /usr/local/redis/bin/
./redis-server /root/myredis/redisNew.conf
./redis-cli -a 123456
2.4.2启动131的Redis
cd /usr/local/redis/bin/
./redis-server /root/myredis/redis131.conf
./redis-cli -a 123456 -p 6381
2.4.3启动132的Redis
cd /usr/local/redis/bin/
./redis-server /root/myredis/redis132.conf
./redis-cli -a 123456 -p 6382
查看129.的日志
1.从机可以执行写命令吗?
不可以,从机只有读写命令的去哪里
2.主机shutdown后,从机会上位吗?
不会,会一直等待到主机启动
3.主机shutdown后,重启后主从关系还在吗?从机还能否顺利复制?
还在,能顺利复制
4.某台从机down后,master继续,从机重启后它能跟上大部队吗?
可以
2.2改换门庭
① 将131的主机配置去掉
②将132的主机配置去掉
③ 重启Redis,查看三个Redis的主从状态 info replication
info replication
三个Redis都为主机
③ 将131,132重新用命令设定主机129
slaveof 主库IP 主库端口
slaveof 192.168.118.129 6379
④ 主机新增数据,查看从机是否同步更新
需要注意的是,通过手动命令设置的主从关系,一旦重启就失效了,是临时命令
2.3 薪火相传
Redis的薪火相传是指上一个 Slave(从服务器)可以是下一个 slave 的 Master(主服务器),Slave 同样可以接收其他 slaves 的连接和同步请求,那么该 slave 作为了链条中下一个的 master,可以有效减轻 master 的写压力,去中心化降低风险。
实现步骤
①131配置主机129
./redis-server /root/myredis/redis131.conf
./redis-cli -a 123456 -p 6381
slaveof 192.168.118.129 6379
②132配置主机131
./redis-server /root/myredis/redis131.conf
./redis-cli -a 123456 -p 6381
slaveof 192.168.118.131 6381
③ 查看各个Redis的主从状态
info replication
④ 129主机新增数据查看各个从机数据
2.4自立为王
Redis的自立为王是指将当前的 slave(从服务器)数据库停止与其他 master(主服务器)数据库的同步关系,转成主数据库。执行该操作后,该 slave 数据库将不再接收其他 master 数据库的数据同步,而是自己成为一个独立的主数据库,可以接受其他 slave 数据库的连接和数据同步请求。简单来说就是从从机变为主机
实现步骤
SLAVEOF no one
三、总结
本文主要介绍了什么是主从复制,以及主从复制的四种模式分别为:一主二仆、薪火相传、改换门庭、自立为王的意思以及如何配置和效果演示。