Redis主从复制和哨兵

在复制的概念中,数据库分为两类,一类是主数据库(master),另一类是从数据库(slave)。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。

在redis中配置主从非常简单,只需修改配置文件即可,主数据库无需进行任何配置。


第一个参数配置主数据库的ip,端口,第二个参数是主数据库的密码。

info replication    查看replication的信息

默认情况下从数据库是只读的,不能直接修改数据。可以设置从数据库配置文件的slave-read-only为no以使数据库可写。但通常情况下不应该设置从数据库可写。

如果改数据库已经是其他主数据库的从数据库了,slaveof命令会停止和原来数据库的同步转而和新数据库同步。还可以使用salveof no one命令来使当前数据库停止接收其他数据库的同步并转换成为主数据库。

2.哨兵

哨兵的作用就是监控Redis系统的运行状况。它的功能主要是2个:

(1)监控主数据库和从数据库是否正常运行。

(2)主数据库出现故障时自动将从数据库转换为主数据库。

配置哨兵。建立一个配置文件,如sentinel.conf,内容为:

sentinel monitor mymaster 127.0.0.1 6379 1

sentinel auth-pass mymaster 123456

其中mymaster表示要监控的主数据库的名字,可以自己定义一个。这个名字必须仅由大小写字母、数字、“.-_”这3个字符组成。后两个参数表示主数据库的地址和端口号。最后的1表示最低通过票数,quorum参数。auth-pass配置主数据库的密码。

启动哨兵

redis-sentinel sentinel.conf    通过配置文件启动

一个哨兵可以同时监控多个Redis主从系统,只需要提供多个sentinel monitor配置即可。

同时多个哨兵节点也可以同时监控同一个Redis主从系统,从而形成网状结构。

哨兵和主数据库建立完成后,会执行下面3个操作:

(1)每10秒哨兵会向主数据库和从数据库发送info命令。

(2)每2秒哨兵会向主数据库和从数据库的_sentinel_:hello频道发送自己的信息。

(3)每1秒哨兵会向主数据库、从数据库和其他哨兵节点发送ping命令。

时间间隔与down-after-milliseconds选项有关,当down-after-milliseconds的值小于1秒时,哨兵会按照指定时间发送一次ping命令,当大于1秒时,每隔一秒发送一次ping命令。

主观下线:当超过down-after-milliseconds选项指定时间后,如果被ping的数据库或节点任然未进行回复,则哨兵认为其主观下线。

客观下线:主观下线表示从当前的哨兵进程看来,该节点已经下线。如果该节点是主数据库,则哨兵会进一步判断是否需要对其进行故障恢复,哨兵发送sentinel is-master-down-by-addr 命令询问其他哨兵节点以了解他们是否也认为该主数据库主观下线,如果达到指定数量时,哨兵会认为其客观下线,并选举领头的哨兵节点对主从系统发起故障恢复。这个指定的数量是配置文件的quorum参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值