1、Redis主从复制
①、主从复制是什么?
主从复制是一种架构思想,Redis部署时一台主机(master),多台从机(slaver),当主机数据更新时,会根据同步策略更新到从机上;主机只负责写,从机只负责读,起到读写分离的效果;
②、主从复制能干嘛?
- 读写分离,性能扩展;
- 容灾快速恢复;
③、搭建主从复制步骤:
- 将redis.config文件拷贝一份到/opt/redis/myredis/目录下;注,这目录需要自己建;
- 在myredis目录下新建多份文件,分别命名为redis6379、redis6380、redis6381;
- 在每份配置文件中写如下内容:
#引用的配置文件绝对路径
include /opt/redis/myredis/redis.conf
#pid文件名称
pidfile "/var/run/redis_6379.pid"
#指定端口号,如果是redis6380.config这里就要写6380
port 6379
#rdb文件名称
dbfilename "dump6379.rdb"
将拷贝的那份redis.config配置文件打开,将daemonize修改成yes,将Appendonly 关掉或者换名字
247 daemonize yes
1230 appendonly no
设置slave-priority 10:这是设置从机的优先级,值越小,优先级越高,用于选举主机时使用。默认100
④、启动三台服务
⑤、查看是否启动:
⑥、查看三台主机运行情况:
#进入对应的端口号客户端
redis-cli -c -p 6379/6380/6381
⑦、配置成为某个实例的从服务器,在redis客户端使用:
#在6380和6381上执行: slaveof 127.0.0.1 6379
slaveof <ip> <port>
2、Redis主从复制常用的三种模式
①、一主二仆特点:
- 当某台从服务器挂掉后,重启后默认是主服务器,不是从节点;
- 当这台从服务器重启手动设为从节点后,会重新全量复制主节点数据;
- 当主节点挂了,从节点不会升为主节点,当主节点重启后,从节点依旧是 该主节点的从节点;
②、薪火相传特点:
- 上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master, 可以有效减轻master的写压力,去中心化降低风险
- 中途变更转向:会清除之前的数据,重新建立拷贝最新的;
- 风险是一旦某个slave宕机,后面的slave都没法备份;
- 主机挂了,从机还是从机,无法写数据了;
③、反客为主特点:
- 当一个master宕机后,后面的slave可以立刻升为master,其后面的slave不用做任何修改。
- 用 slaveof no one 将从机变为主机。使用哨兵模式后就不需要手动操作了;