编程实践3—redis主从备份和高可用

关于如何搭建lvs+keepalived实现VIP对多台服务器的访问,就不再赘述,参考:http://wenku.baidu.com/link?url=9b0VGQcwNJoUz61Cn2tU9EJge8lWiHA4rFMaN4iNBy4S_GIj0K7gWCwn_5SxUc83nss9dfCSdwHNIkK5OymWIkioHYewCxxCeFOeaa4iwL_  多提一句:现在已经不需要配置vrrp_instance ,你也可以配置

redis通过在配置文件中添加 slaveof  master-ip  master-port 来指定一个redis实例是另一个实例的从实例,主(master) 上的数据会自动同步到从(slave)上;当master挂了怎么办呢? 这里可以使用redis提供的redis-sentinel (很多人称其为哨兵)来选举新的master了。

redis-sentinel 其实比较简单,提供一个sentinel.conf文件即可 ,主要原理: redis-sentinel本身相互之间是可以通信的,每个redis-sentinel 实例会去监听一个 master-ip 和端口,当master挂了的时候,所有的sentinel 会相互通信进行新的master选举。因此sentinel实例只要配置好监听的master 的ip和端口就差不多了,当然还有其他的次要的信息,如需要多少个sentinel实例同意才选举成功新的master。最简洁的配置如:

port 5001
sentinel monitor mymaster 121.16.233.145 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 20000

需要注意的是,其实sentinel在将slave选举为master后,会修改redis.conf  文件:如果redis实例是master,则删掉slaveof 行;否则更新slaveof 行,让其指向新的master 的ip和端口,从而完成新的master-slave 配置 。 另外,当之前的redis重新启动,会作为slave加入到之前的主从配置中。

PS:启动的时候先启动redis,后启动sentinel,每一个redis都有一个sentinel实例来监听

${CURRENT_PATH}/bin/redis-server ${CURRENT_PATH}/conf/redis.conf &
${CURRENT_PATH}/bin/redis-sentinel ${CURRENT_PATH}/conf/sentinel.conf > ${CURRENT_PATH}/redis.log 2>&1 &




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值