首页 > 代码库 > redis主从复制和故障切换

redis主从复制和故障切换

redis主从复制和故障切换


1)当启动一个Slave进程后,它会向Master发送一个SYNC Command,请求同步连接。

2)无论是第一次连接还是重新连接,Master都会启动一个后台进程,将数据快照保存到数据文件中,同时Master会记录所有修改数据的命令并缓存在数据文件中。

3)后台进程完成缓存操作后,Master就发送数据文件给Slave,Slave端将数据文件保存到硬盘上,然后将其在加载到内存中,接着Master就会所有修改数据的操作,将其发送给Slave端。

3)若Slave出现故障导致宕机,恢复正常后会自动重新连接,Master收到Slave的连接后,将其完整的数据文件发送给Slave

4)如果Mater同时收到多个Slave发来的同步请求,Master只会在后台启动一个进程保存数据文件,然后将其发送给所有的Slave,确保Slave正常。


server13的配置以及redis安装不赘述了,有需要的话移步   基于redis缓存数据库实现lnmp架构高速访问


server11:


安装redis

vim /etc/redis/6379.conf

 slaveof 172.25.4.13 6379            从redis配置
bind 127.0.0.1 172.25.88.11    绑定自己的IP,让别人可以访问

看看redis能否正常运行....

技术分享


server12:

安装redis

配置redis的sentinel

cd /mnt/redis/redis-3.2.5
cp sentinel.conf /etc/redis/

vim sentinel.conf

 17 protected-mode no    一定要关闭保护模式,否则主从切换不成功,这个很容易忽略!
21 port 26379        管理端口
98 sentinel monitor mymaster 172.25.88.33 6379 2  #2个岗哨(选举的时候会用到),配置master
106 sentinel down-after-milliseconds mymaster 5000
#master或slave多长时间不能使用后标记为s_down状态
131 sentinel failover-timeout mymaster 90000
#若sentinel(岗哨)在该时间值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。


vim /etc/redis/6379.conf

 268 slaveof 172.25.88.33 6379            从redis配置
bind 127.0.0.1 172.25.88.22


scp sentinel.conf 172.25.88.13:/etc/redis/
scp sentinel.conf 172.25.88.11:/etc/redis/


server11,12,13

redis-server /etc/redis/sentinel.conf --sentinel    


技术分享



检测


1.一主双重是否成功


[kiosk@miaomiao ~]$ ssh root@172.25.88.12
[root@server12 ~]# redis-cli -p 26379
127.0.0.1:26379> info master0:name=mymaster,status=ok,address=172.25.88.13:6379,slaves=2,sentinels=3



2.主从切换( failover )

[root@server11 redis]# redis-cli -h 172.25.88.13 shutdown


serve13先主动down,自己发现服务异常,但主动down不切换,

之后被动down,开始选举new master ,先确定两个岗哨的状态,之后为下一任master投票,最后11当选下一任master



技术分享


server13已经下马,servre11现在是master,同时每个配置中的主从配置,也在原来的地方文件也更改了...


技术分享


本文出自 “12049878” 博客,谢绝转载!

redis主从复制和故障切换