redis 的主从复制 与 sentinel 模式

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:47   1536   0

目录

redis 的主从复制

原理

配置

master 宕机的处理

注意事项

sentinel

sentinel出现所解决的问题

sentinel的原理

配置

运维


先说几个有用的命令 ,这个命令是将配置文件中 # 和空格行去除

这个命令是将文件中的 内容替换为知道的内容并放到另外一个配置文件中

redis 的主从复制

原理

复制的方式有两种 全量复制和部分复制,全量复制和部分复制

具体参见如下文档:主从复制原理

配置

################################# REPLICATION #################################
###在从服务器上进行该选项的配置,slaveof告诉他,她得master 是6379,并且其只是可读功能
slaveof 127.0.0.1 6379
slave-read-only yes

master 宕机的处理

master如果宕机的话我们需要执行命令 手动处理,两步操作

#在我们想要成为新master的slave节点执行 该命令,使其从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。

SLAVEOF NO ONE
###将slave从老的master指向新的master
slaveof  ip  port

注意事项

规避全量复制

  1. 第一次全量复制 无法规避 。 处理方式: 小主节点 不要让master的内存占用过大
  2. 节点运行id不匹配 主节点重启 (运行id变化)导致了从节点不知道master是因为故障问题还是什么,则认为数据是不安全的,则从master中全量同步数据 。处理方式:使用 故障转移 如 哨兵模式 或集群
  3. 复制积压缓冲区不足 如果发生网络抖动的话就会使用部分复制,如果偏移量没有在这个区间内,就只能使用全量复制了 。处理方式: 增大复制缓冲区配置 rel_backlog_size 如果不明白的话参考上面的主从复制原理
  4. 复制风暴 1 单个主节点复制风暴 问题 主节点重启,多从节点复制 处理方式: 更换复制拓扑结构 2 单机器复制风暴 处理方式: 将master分散在各个机器上面

sentinel

sentinel出现所解决的问题

通过上面master宕机处理方式我们知道,主从复制故障转移是不能够自动化的,需要手动故障转移,所以sentinel 应运而生。

sentinel的原理

这里有两个概念,一个是客观下线,一个是主观线下。参见如下文章:sentinel

配置

首先先根据主从复制所提到的方式进行 redis-server 的搭建,搭建一个 master slave 集群

然后进行 sentinel 的配置

port 26379
dir /develop/redis/data
####我们所要监控的节点的master节点     mymaster 为我们新定义命名空间   127.0.0.1 6379 为master 的ip地址和端口号 2 即两个sentinel 认为客观下线的话就进行故障转移
sentinel monitor mymaster 127.0.0.1 6379 2
#####失去连接多少时间则认为是下线
sentinel down-after-milliseconds mymaster 30000
####故障切换 并行同步的个数
sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

之后启动sentinel 程序

/redis-3.0.5/bin/redis-sentinel ./sentinel-26381.conf

运维

  • 节点上线

主节点上线 通过手动触发故障转移 sentinel failover <mastername> 命令来实现

从节点上线 通过配置或执行命令slaveof即可,参考redis slave 节点的启动即可

sentinel 节点 参考sentinel 节点的启动即可

  • 节点下线

主节点下线 通过手动触发故障转移 ,即通过向sentinel 节点发送 sentinel failover <mastername> 命令来实现

从节点 直接在下即可,但是如果是有读写分离的话需要通知客户端,slave下线

sentinel 节点 同从节点一样

redis 客户端的sentinel 模式的实现机制

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP