redis主从复制及哨兵机制

Redis主从复制与哨兵机制详解
本文详细介绍了Redis的主从复制过程及其特性,包括从库如何同步主库数据,以及主从复制在读写分离中的作用。同时,讨论了主数据库宕机时,由于从数据库无法执行写操作可能带来的影响。为解决此问题,文章阐述了哨兵机制的原理和配置,展示了在主库宕机时,哨兵如何自动选举新的主库,确保系统的高可用性。
  1. redis主从复制过程及特性
    主从复制流程图
    过程:从数据库启动时,会向主数据库发生sync命令,
    主数据库接受到sync命令后会开始保存快照(执行rdb操作),并且缓存这期间的接受的命令,
    在快照保存成功后,将快照及缓存命令一同发送到各从数据库中,
    从数据库接受到后会载入快照文件并执行收到的缓存命令。

主从复制特性:有且只有一个主数据库,可有多个从数据库。主数据库可执行读写操作,从数据库只能执行读操作。
在这里插入图片描述
在从数据库中执行set命令时会有图中报错。一般主数据库进行写操作,从数据库进行读操作。
根据主从复制特性可以实现redis的读写分离。

  1. 主从复制配置
    在redis.conf中配置
    slaveof ip
    masterauth 密码
    然后重启redis即可。

问题:主数据库进行写操作,而从数据库不能进行写操作,那么当主数据库宕机时,会导致写操作不能执行吗?

  1. 哨兵机制
    原理:哨兵是一个独立的应用,哨兵与各redis库保持心跳连接,当每个哨兵都与某个redis库连接异常时,则判定这个redis库宕机,若为主库宕机,那么哨兵进行投票机制在从数据库中选举一个主数据库来,并修改相关配置。
    相关配置及效果:
    首先启动3台redis服务器:192.168.6.128(主)
    192.168.6.129(从) 192.168.6.130(从)
    将单个哨兵配置在130服务器上:
    修改sentinel.conf配置文件,
    sentinel monitor mymast 192.168.6.128 6379 1
    #主节点 名称 IP 端口号 选举次数
    sentinel auth-pass mymaster 密码
    启动哨兵:./bin/redis-server ./sentinel.conf --sentinel &
    在这里插入图片描述
    启动成功后,将主库shutdown,查看效果。
    在这里插入图片描述
    从哨兵的日志中可以看出,128主库shutdown后选举130为主库。进入130 redis中查看info。
    在这里插入图片描述
    可以看出130已经变为主库。
    在130中 set name 123
    在129中 get name
    在这里插入图片描述
    在这里插入图片描述
    此时将129redis重新启动,首先 set name1 456 失败因为已变成从库。
    然后 get name可以获得在启动前设置的name值,表示主从复制成功。
    在这里插入图片描述
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值