redis 的主从复制 与 sentinel 模式

目录

 

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值