redis主从切换的集群管理


站的访问量慢慢上来了。为了网站的性能方面,开始用了redis做缓存策略。刚开始的时候,redis是一个单点,当一台机器岩机的时候,redis的
服务完全停止,这时就会影响其他服务的正常运行。费话不多说了,下面利用redis
sentinel做一个主从切换的集群管理。做这个集群管理的时候,查过很多资料才完全了解,他是怎么做的。

java 客户端请看:

http://blog.mkfree.com/posts/52b146e6479e5a64742fddd0

参考资料:http://redis.io/topics/sentinel 我也是看这篇文章。

环境配置:

由于我这次配置没有太多的机器,我用了vagrant 去开了多台虚拟机。然后搭好了环境。

redis的安装请参考:redis 简单官方脚本安装方法(linux)

集群配置最少需要三台机器,那么我就三台虚拟机,三台虚拟机分别安装同样的redis的环境

ip分别:

  • 192.168.9.17  (redis sentinel 集群监控)
  • 192.168.9.18  (redis 主)
  • 192.168.9.19  (redis 从)

redis配置:

主的redis配置文件,使用默认的配置文件就可以了,如果你需要设计其他参数

从的redis配置文件,添加

#从的redis配置文件,需要添加vim /etc/redis/6379.confslaveof 192.168.9.18 6379

启动主从redis

#启动主redis(192.168.9.18)/etc/init.d/redis_6379.conf start#启动从redis(192.168.9.19)/etc/init.d/redis_6379.conf start

查看主redis信息

#查看主redis的信息redis-cli -h 192.168.9.18 info Replication# Replicationrole:master #代表192.168.9.18:6379 这台redis是主connected_slaves:1slave0:192.168.9.18,6379,online

查看从redis信息

#查看主redis的信息redis-cli -h 192.168.9.19 info Replication# Replicationrole:slave #代表192.168.9.18:6379 这台redis是主master_host:192.168.9.18master_port:6379master_link_status:up
master_last_io_seconds_ago:4master_sync_in_progress:0slave_priority:100slave_read_only:1connected_slaves:0


配置redis sentinel集群监控服务 1.添加一份redis sentinel 配置文件

vim /etc/redis/sentinel.conf##redis-0##sentinel实例之间的通讯端口port 26379#master1
sentinel monitor master1 192.168.9.18 6379 1sentinel down-after-milliseconds master1 5000sentinel failover-timeout master1 900000sentinel can-failover master1 yes
sentinel parallel-syncs master1 2#master2  可以添加多组主从的redis监听.......

2.有配置文件了,那么启动redis sentinel做redis集群监听redis-sentinel sentinel.conf --sentinel



好了,所有环境都搭好了。下面开始正式的演示 1.正常演示。

  • 把主的redis启动
  • 把从的redis启动
  • 把redis sentinel 集群监听启动

观察redis sentinel 日志信息

这里很清楚地看到,从的redis加入了集群

[4925] 15 Oct 03:42:21.889 * +slave slave 192.168.9.19:6379 192.168.9.19 6379 @ master1 192.168.9.18 6379

执行以下命令,查看redis主从信息

[[email protected] vagrant]# redis-cli -h 192.168.9.17 -p 26379 info Sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0master0:name=master1,status=ok,address=192.168.9.18:6379,slaves=1,sentinels=1

那么表示一切都正常了。你的redis sentinel集群已经配置成功!



2.故障演示

2.1当主的redis 服务器岩机了,会发生什么情况呢?

执行以下命令使用主的redis服务停止

redis-cli -h 192.168.9.18 -p 6379 shutdown #表示把192.168.9.18这台redis 关闭

这张图片很清晰地反应到,redis sentinel 监控到主的redis服务停止,然后自动把从的redis切换到主。

再执行以下命令,查看redis主从信息

[[email protected] vagrant]# redis-cli -h 192.168.33.111 -p 26379 info Sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0master0:name=master1,status=ok,address=192.168.9.19:6379,slaves=1,sentinels=1

2.2 当我们已经发现,一台redis发生故障了,可能会收到一些故障信息,那么再把服务已关闭的redis恢复服务状态,会发生怎么样的情况呢?

redis sentinel 集群服务,会把上次主redis重新加入服务中,但是他再以不是主的redis了,变成从的reids。

时间: 2024-11-08 09:00:37

redis主从切换的集群管理的相关文章

【转】Redis主从同步与集群管理

转自http://blog.csdn.net/u012152619/article/details/52854465 1.主从同步原理 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构.主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担.Redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低Redis的处理性能.主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提

部署redis主从高可用集群

部署redis主从高可用集群本文部署的redis集群是一主一从,这两台服务器都设置了哨兵进程,另外再加一台哨兵做仲裁,建议哨兵数量为基数172.16.1.187    redis主+哨兵172.16.1.188    redis从+哨兵172.16.1.189    哨兵以上系统均为CentOS6 在187,188,189上部署redis过程如下:(1)redis使用编译安装方式,所以需要安装编译基本组件# yum -y install gcc gcc-c++ make cmake cpp gl

Redis主从以及哨兵集群搭建(二)

Redis主从以及哨兵集群搭建 一.前言 Redis主从同步原理同MySQL的主从原理十分相似,而解决Redis单点故障的哨兵机制(sentinel)又同解决MySQL单点故障的MHA十分相似.因此我们在学习Redis时,可以将学习MySQL的知识迁移,这样一来,有利于我们快速掌握Redis主从机制,Redis哨兵集群的搭建.Redis的Sentinel机制大概是这样的.sentinel即哨兵,作用即放哨.开个玩笑,其实哨兵有三个作用:监控.通知和自动故障转移.哨兵是用来监控Redis的mast

Redis主从哨兵和集群搭建

主从哨兵和集群搭建 主从配置 哨兵配置 集群配置 1.主从: 国王和丞相,国王权力大(读写),丞相权利小(读) 2.哨兵: 国王和王子,国王死了(主服务挂掉),王子继位(从服务变主服务) 3.集群: 国王和国王,一个国王死了(节点挂掉),其他国王还活着,世界还没毁灭 主从配置 流程: 复制多份redis编译之后(make)的文件,分别命名为: xxx-6379 xxx-6380 xxx-6381 ... 开启6379服务和 6380服务 方式一: 在6380的客户端输入:slaveof 127.

redis演练(9) redis Cluster 集群管理&failover情况

<redis演练(8) redis Cluster 集群环境安装>,简单阐述了如何安装redis集群环境. 集群环境,主要包括2部分. 1.配置每个节点的配置信息(redis.conf),尤其开启cluster 2.创建集群redis-trib.rb创建集群. 过程非常简单,但非常繁琐,尤其配置各个集群节点的配置信息,如果有一定数量,工作量也不小. 没关系,redis提供了一款cluster工具,能快速构造集群环境.本章的主要内容是介绍redis提供的集群工具. 1.使用create-clus

Redis 集群管理常见操作

Redis 内置客户端 redis-cli 通过 --cluster 选项集成了多个 Redis 集群管理工具, 这些工具可以执行创建集群.向集群中添加或移除节点.对集群实施重分片以及负载均衡等操作, 它们每一个都非常强大:$ redis-cli --cluster help``` Cluster Manager Commands:create host1:port1 ... hostN:portN--cluster-replicas <arg>check host:portinfo host

Redis集群管理

原文链接:http://blog.csdn.net/xyang81/article/details/51895011 在上一篇<Redis3.2集群担建与验证>文章中分享了集群的详细担建过程,本篇主要分享集群管理的常见操作,如:添加节点.删除节点.slot分配.如果你还没有担建集群环境,建议先看上篇<Redis3.2集群担建与验证>过程,再来阅读本文比较好理解. 1.集群管理常用命令 // 集群(cluster) CLUSTER INFO 打印集群的状态信息 CLUSTER NOD

ruby redis的集群管理器

#========================================================================================== # => redis集群管理器 #========================================================================================== class CacheGroupManager attr_reader :redis_groups

redis cluster集群管理工具redis-trib.rb功能小结

redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单.便捷.实用的操作工具.redis-trib.rb是redis作者用ruby完成的.所以要执行redis-trib.rb命令,需要Ruby,具体可参考:http://www.cnblogs.com/kevingrace/p/7846324.html [[email protected] ~]# /data/redis-4.0.6/src/redis