redis主从复制

    在我们项目中客订不可能只是单纯的运行一个redis这个是非常危险的。所以这个时候我们就需要搭建一个redis集群来降低这种风险。

集群作用:

主从备份,防止宕机。

读写分离,分担master的任务。

任务分离,比如从服务器分担备份的工作或者计算的工作。

我们在这里说一下,集群和主从复制的关系,集群包含两个功能,一个是负载均衡,一个是主从复制。我们这里直说第二种的实现:


主从通信的过程:


(1)Slave服务器连接到Master服务器.
(2)Slave服务器发送SYCN命令,请求同步。打开自己的rdb文件存储master的发送过来的数据。创建读rdb的io事件。
(3)Master服务器备份数据库到.rdb文件.
(4)Master服务器把.rdb文件传输给Slave服务器.
(5)Slave服务器把先情况原来的数据,然后把.rdb文件数据导入到数据库中.
 
上面的这5步是同步的第一阶段, 接下来在Master服务器上调用每一个命令都使用replicationFeedSlaves()来同步到Slave服务器.这是增量同步。

具体的参考:http://blog.sina.com.cn/s/blog_7530db6f0100vegl.html


相关的配置:

master配置:

①关闭rdb快照(备份的工作交给slave)。

②可以开启aof.

slave:

①声明slave-of

②配置密码如果master有密码。

③某一个salve打开rdb快照功能。

④配置是否只读。

这时候我们上一节课说的持久化的繁重的IO操作就可以通过这种主从复制的原理,将其移到从服务器上面。

具体的配置属性这里不简绍了。


集群方式:


这里对于具体的在主机有了宕掉之后,的切换,我们可以使用相应的监控工sentinel


监控sentinel

sentinel工作原理:

Sentinel不断与master通信,获取master的slave信息.
监听master与slave的状态
如果某slave失效,直接通知master去除该slave.


如果master失效,,是按照slave优先级(可配置), 选取1个slave做 new master
,把其他slave--> new master


Sentinel选项配置
port 26379 # 端口
sentinel monitor mymaster 127.0.0.1 6379 2 ,
给主机起的名字(不重即可), 
当2个sentinel实例都认为master失效时,正式失效


sentinel down-after-milliseconds mymaster 30000  多少毫秒后连接不到master认为断开
sentinel can-failover mymaster yes #是否允许sentinel修改slave->master. 如为no,则只能监控,无权修改./
sentinel parallel-syncs mymaster 1 , 一次性修改几个slave指向新的new master.防止一次所有的slave指向master这个时候,导致负载过高。
sentinel client-reconfig-script mymaster /var/redis/reconfig.sh ,# 在重新配置new master,new slave过程,可以触发的脚本

监控具体的操作:

sentinel文件:

Copy从压缩包中sentinel


在这个文件里面按照我们上面的配置进行操作。

在从服务器中配置节点:


这个是优先级的意思,配置的数字越小,在master有问题之后马上数字最小的slave切换为master。
启动我们的监控:


在主机当掉的时候会自动切换的。


这里简单的简绍了一下。已做学习记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值