redis + keepalived 实现高可用
2012-11-29 11:15
351 查看
redis 安装配置到主从及ha的实现 sed -i '/^\[main\]$/ aexclude=*.i?86' /etc/yum.conf yum remove \*.i\?86 -y yum groupinstall "Development Libraries" "Development Tools" -y wget http://redis.googlecode.com/files/redis-2.4.11.tar.gz tar zxvf redis-2.4.11.tar.gz cd redis-2.4.11 make && make test && make install && cd .. #make命令执行完成后,会在当前目录下生成本个可执行文件,如下: #redis-server:Redis服务器的daemon启动程序 #redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作 #redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 #redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 cp redis.conf /etc/ sed -i '/^daemonize/ s/ no$/ yes/g' /etc/redis.conf [root@localhost ~]# redis-cli redis 127.0.0.1:6379> set foo bar OK redis 127.0.0.1:6379> get foo "bar" redis 127.0.0.1:6379> redis双机高可用的基础,是redis的主备复制机制。指定主备角色,是用slaveof命令。 指定本机为master slaveof NO ONE 指定本机为192.168.1.10的slave slaveof 192.168.1.10 6379 如果同mysql的master-master机制那样,分别在配置文件中指定本机为对方的slave,配置文件中都设置slaveof x.x.x.x,那么这两个redis启动之后不提供服务,客户端无法连接,类似于服务死锁的状态。 实验发现,如果两个服务按照都master方式启动,然后给一个master发送slaveof命令,指定其为另一个的slave,则此时双方都为slave,数据可以进行双向同步。基于这个原理,设计了一个redis双机互备的机制。 结构如下: redis: server:192.168.202.40 cluster: master:192.168.202.114 slave: 192.168.202.115 实现方式如下 : 1、 两台redis服务器,配合keepalived。 2、 初始状态,是在master(192.168.202.114)上绑定keepalived的virtual ip 192.168.202.40。 3、 启动一个监控脚本,每秒钟对两个redis服务进行一次扫描。 4、 如果两台redis处于正常master-slave状态,则不进行操作。 5、 如果master挂掉,监控脚本对在线的slave(192.168.202.115)发送slaveof NO ONE命令, 设置其为临时的主机master,同时由于原来的master服务器挂掉, virtual ip 192.168.202.40自动转移至master,不影响应用程序对redis的存取。 此时应用程序新产生的数据都保存到master(192.168.202.115)上。 6、 脚本监测到原来的master(192.168.202.114)在挂掉后重新启动加入集群, 则向原master发送slaveof 192.168.202.115 6379命令,设置其为slave, 从新master(192.168.202.115)复制在自己挂掉期间丢失的数据。 本文出自 “forward” 博客,请务必保留此出处http://nginx.blog.51cto.com/491911/845494 |
相关文章推荐
- Keepalived实现redis的主从切换高可用原理详解
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
- 结合keepalived实现redis群集高可用故障自动切换 推荐
- keepalived实现redis主从高可用
- Keepalived+Nginx+Redis+Tomcat实现高可用web负载均衡
- Redis主从配置及使用KeepAlived实现Redis高可用
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
- redis+keepalived实现高可用
- 使用keepalived 实现redis主从高可用
- 使用keepalived 实现redis主从高可用
- 结合keepalived实现redis群集高可用故障自动切换
- redis+sentinel+keepalived 高可用,可实现多台并单点访问
- redis+keepalived实现高可用
- 采用Keepalived实现Redis双机高可用
- 利用redis-sentinel+keepalived实现redis高可用
- 利用redis-sentinel+keepalived实现redis高可用
- SUSE11环境下Redis+Keepalived实现高可用技术
- Redis主从配置及使用KeepAlived实现Redis高可用
- Redis 高可用 基于Sentinel + keepalived 实现
- 采用Keepalived实现Redis双机高可用