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 查询主从关系命令 redis查看主从节点_主从复制


⑤、查看是否启动:

redis 查询主从关系命令 redis查看主从节点_redis_02


⑥、查看三台主机运行情况:

#进入对应的端口号客户端
redis-cli -c -p 6379/6380/6381

redis 查询主从关系命令 redis查看主从节点_redis_03


⑦、配置成为某个实例的从服务器,在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 将从机变为主机。使用哨兵模式后就不需要手动操作了;