> 데이터 베이스 > MySQL 튜토리얼 > NoSQL之Redis 高可用性集群方案,应急维护技巧

NoSQL之Redis 高可用性集群方案,应急维护技巧

WBOY
풀어 주다: 2016-06-07 16:47:00
원래의
978명이 탐색했습니다.

连上从库,做save操作。将会在从库的data目录保存一份从库最新的dump.rdb文件。将这份dump.rdb文件拷贝到主库的data目录下。再重

前提:现在有主从结构,主库没有配置持久化,从库配置AOF。(主库用来备份和写服务,从库用来提供读服务)

场景:哪天主库突然宕了,怎么办?

方法:连上从库,做save操作。将会在从库的data目录保存一份从库最新的dump.rdb文件。将这份dump.rdb文件拷贝到主库的data目录下。再重启主库。

就因为这个我想到了用集群的方案,但是redis官方没有mysql那样的master-

master的模式~  这样的情况下,只能咱们自己想办法了~

实现的原理~

当 Master 与 Slave 均运作正常时, Master负责读,Slave负责同步;

当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;

然后依次循环。

这样,两台redis服务器中的任何一台挂掉,都会由另一台继续提供服务,不会对网站形成可察觉的影响,也不会丢失数据。

你也可以实现当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Master同步数据完成之后,恢复Slave身份。

高可用方面

需要把读写进行分离的,,写的话,就指向到一个vip~ 那两个主 用keepalived加脚本进行判断。

读的话,尽量用haproxy进行分流,这样的话,哪怕一个从down的话,haproxy会自动剔除的~

redis安装~

keepalived的安装~

 

安装完之后,具体说下高可用性的部分,下面是 的keepalived.conf 的配置文件~

killall -0 redis-server 来判断进程的存活~

也可以用checkredis.sh 这个脚本~

【大家可以写简单点~】 这个方法是redis自带的一个判断服务存活的程序

linux

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿