redis主从及哨兵故障转移

环境搭建

环境:centos7.5
redis version:3.2.12
master:172.28.128.4
node01:172.28.128.5

redis主从复制

  • 特点:一个master可由多个slave组成;支持链式复制,master以非阻塞方式同步数据至slave
  • 主从复制过程(原理):当从节点进行slave of masterIP masterPORT命令时,
    • 保存主节点信息
    • 主从建立socket连接
    • 发送ping命令
    • 权限认证
    • 同步数据集
    • 命令持续复制
  • 注意:
    • 从服务器配置文件的bind需将本地IP放置在127.0.0.1之前,或使用0.0.0.0
    • 如果masster使用requirepass开启了认证功能,从服务器使用masterauth password来连入服务请求使用此密码进行认证
  • 缺点:
    • 主节点出现问题,则不能提供服务,需人工进行故障转移
    • 主从节点的写能力单机,能力有限
    • 单机节点的存储有限

主从实现

  1. 两台服务器分别yum install redis
  2. 修改配置文件/etc/redis.conf
    bind 0.0.0.0
  3. 启动redis
    redis-server /etc/redis.conf &
  4. 进入master节点的redis设置一个件
    redis-cli -h 172.28.128.4
    set redis haha
  5. 进入从节点
    redis-cli -h 172.28.128.5
    slaveof 172.28.128.4
    keys * -->“redis”
    info replication

    #Replication
    role:slave
    master_host:172.28.128.4
    master_port:6379

哨兵的故障转移机制及实现

  • 功能:用于管理多个redis服务实现高可用,解决部分redis主从复制的缺点
  • 故障转移:
    1. 由sentinel节点定期监控主节点是否发生故障;sentinel向master发送心跳包PING来确认master是否存活,如果master在“一定时间内”未回复PONG或者回复错误消息,那么sentinel会主观认为这个master已经不可用。
    2. 当主节点出现故障,由多个sentinel节点进行投票并选举一个从节点作为master节点
    3. sentinel执行故障转移,将一个从节点升级为主节点,将剩余的从节点指向到新的主节并通知客户端主节点已更换
    4. 当原来的主节点重新上线时,会变成从节点,并指向到新的主节点。

故障转移实现

基于上面的一主一从,添加一个sentinel服务,模拟主节点下线后,sentinel进行的故障转移。

  1. 修改sentinel配置文件
vim /etc/redis-sentinel.conf
sentinel monitor mymaster 172.28.128.4 6379 1
# 指明监控的主节点
其他默认即可

2.启动redis-sentinel服务
redis-sentinel /etc/redis-sentinel.conf &
3.进入sentinel服务中查看目前的master

redis-cli -p 26379
sentinel masters
>1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "172.28.128.4"
    5) "port"
    6) "6379"
  1. 认为结束master节点上的redis进程
  2. 再次查看sentinel中的master
sentinel masters
>1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "172.28.128.5"
    5) "port"
    6) "6379"
  1. 也可手动强制故障转移
    sentinel failover <mastername>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值