第九章、复制(replica)
1、是什么?
1、就是主从复制
2、一个主人n个奴隶,主人能写数据,奴隶只能读数据,用作备份
2、能做什么
1、读写恢复
2、容灾恢复
3、数据备份
4、水平扩容支持高并发
3、怎么玩?
1、注意
1、配置从库!不要配置主库!
2、如果master(主人) 配置了密码,slave(奴隶)就需要配置masterauth命令来校验密码。不然就拒绝请求
2、基本操作
1、查看主从机状况
2、在redis中输入
info replication
3、手动配置主库
replicaof 主库ip 主库端口
4、从库手动配置要做哪个主人的命令
slaveof 主库ip 主库端口
5、从库不干了,取消主库,就是自己当主人,
slaveof no one
6、以上的命令都是单次执行。如果断开,就要重新设置。所以我们需要写到redis.conf配置文件中
3、例子
1、我们准备3台虚拟机
1、先搭建环境(这是在自己本机里面)
1、查看ip
ip addr
找到里面的 ens33:inet xxxxxxxxx
2、主虚拟机
-
192.168.171.129/24 -
redis端口号:6379
3、slave-1
-
192.1683.171.132/24 -
redis端口号:6380
4、slave-2
-
192.168.171.133/24 -
redis端口号:6381
5、一定要把主机的防火墙关掉!
2、修改3台虚拟机的配置文件
主机
1、开启
daemonize yes
2、注释掉
bind 127.0.0.1
3、关闭
protected-mode no
4、指定端口
port 6379 #这里以6379为例子
5、指定当前工作目录
dir /myredis
6、pid文件名字,pidfile
pidfile /var/run/redis_6379.pid
7、log文件,logfile文件,这个以后找bug好用,一定要设置,并知道在哪
logfile "/myredis/6379.log"
8、设置登录密码
requirepass 111111
9、设置dump.rdb备份文件的名字
dbfilename dump6379.rdb
10、aof文件,appendfilename。这个有了rdb可以忽略
appenddirname "appendonlydir"
11、从机访问主机的通行密码(这里是主机,不用配)
528行(大概) replicaof 192.168.171.129 6379/6380/6381 #79是主机不用配,配从机用的
536行(大概) masterauth "111111" #密码
从机
1、基本一致
2、改端口
3、从机访问主机的通行密码
3、也可以手动配置
1、输入以上基本操作中的命令就行
2、注意!,配置更推荐。不然直接输入命令,关机后就还原了
3、只是单次生效
4、助记
1、一主n从:就是可以有1个主机,n个从机
- 从机只是无脑拷贝主机的文件,不可能有写权限
2、薪火相传:可以有:主机A 的从机B, 从机B作为从机C的主机
- 他们的数据还是同步的
3、反客为主:就是造反
- 命令:slaveof no one
5、linux虚拟机补充
1、查看防火墙状态
systemctl status firewalld.service
2、关闭防火墙
systemctl stop firewalld.service
4、复制原理和工作流程(面试会问)

5、复制的缺点
肯定有缺点,不然就不会有哨兵机制和集群
1、复制延时、信号衰减
- 主机忙,从还得拷贝,更忙了。数据也就更慢得到了
2、主机master挂了怎么办?
- 从机无法上位
- 只能人工干预