Redis6主从复制搭建详解

1. 概述

主机数据更新后根据配置和策略,自动同步到备机的maxter/slaver机制,Master以写为主,Slave以读为主。常用语读写分离,性能扩展和容灾快速恢复。

2. 搭建

2.1. 新建配置文件

在/myredis目录下分别新建三个配置文件,redis6379.conf、redis6380.conf、redis6381.conf,在配置文件中填写以下内容

include /myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

使用命令redis-server启动三个redis服务
启动三个redis服务
查看系统进程,三个服务是否启动
查看进程
使用命令info replication查看三台主机运行情况
运行情况6379
运行情况6380
运行情况6381

2.2. 配置主从

使用命令slaveof <ip> <port>,遵从配从不陪主的原则
在服务6380和6381上执行:slaveof 127.0.0.1 6379
配从6380
配从6381
此时在主机上写,在从机上可以读取数据,在从机上写数据会报错。主机重启后一切如初,从机重启后需要重新设置:slaveof 127.0.0.1 6379,可以将这行配置增加到配置文件redis6380.conf和redis6381.conf中,永久生效。

2.3. 配置哨兵

能够后台监控主机是否故障,如果故障了根据投票数自动从库转换为主库
在/myredis目录下新建sentinel.conf配置文件,填写如下内容:

sentinel monitor mymaster 127.0.0.1 6379 1

使用命令启动哨兵模式

redis-sentinel /myredis/sentinel.conf

启动哨兵模式
当主机挂掉后,从机选举中产生新的主机
根据优先级别:slave-priority,原主机重启后会变成从机

3. 复制延迟

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave数量的增加也会使延迟更加严重

4. 故障恢复

新主登基
从下线的主服务的所有从服务里挑选一个从服务,将其转为主服务,选择条件如下:

  1. 优先级靠前的
  2. 偏移量最大的
  3. runid最小的

优先级在redis.conf中默认:slave-priority 100,值越小优先级越高
偏移量指获得原主机数据最全的
每个redis实例启动后都会随机生成一个40位的runid
群仆俯首
挑选出新的主服务之后,sentinel向原主服务的从服务发送slaveof新主服务命令,复制新master
旧主俯首
当已下线的服务重新上线时,sentinel会向其发送slaveof命令,让其成为新主的从

おすすめ

転載: blog.csdn.net/liu320yj/article/details/119967964