Redis-sentinel实现redis HA 过程

标签: redis sentinel redis | 发表时间:2014-09-13 06:35 | 作者:perfectpdl
出处:http://blog.csdn.net

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处。

Redis-sentinel 介绍:

Redis-sentinel是官方介绍的监控redis的工具,实际是一个进程,通过tcp socket通信。

其实现如下功能:

(1)     监控 实时监测当前master和slave的状态

(2)     通知

当被监控的redis发生故障时,Sentinel可以通过api方式通知系统管理员

(3)     自动failover

Sentianel监测到master宕机后,可以自动把slave升级为master,接管master任务,同时其他slave也动态被从新配置与新的master同步。

(4)     服务器配置信息的providor

Sentianel进程负责向客户端告知新的master的连接信息,客户端需要连接到sentianel以获取最新的master的连接信息。

Sentianel是分布式的,master和slave都要启动sentianel进程,当某个机器上的sentianel死掉后,其他机器的sentianel仍然能支持上面提到的四点功能。

Redis-sentianel功能需要redis客户端支持,客户端需要实现sentianel规范。

实际使用过程:

(1)     客户端连接redis-sentianel

客户端可以连接master或slave上的sentianel,也可以都尝试连接。

 

(2)     客户端向redis-sentianel 请求当前slave的ip:port信息

客户端向redis-sentianel服务器发送 命令

SENTIANEL    get-master-addr-by-namemastername

其中mastername是sentianel.conf配置文件的master  名字

(3)     客户端通过2中获取的master信息连接master,执行后续操作。

 

Demo:

下面为一个demo,一个master,两个slave,每个机器上启动一个redis-server,一个redis-sentianel.

客户端可以与任何机器上的redis-sentianel  服务器连接获取master信息

 

配置sentianel.conf配置文件,

sentinel monitor mymaster 172.21.121.93 6379 2

主节点ip,port,其中的2表示只有在两个sential进程发现master不可用时才执行failover.

三个机器分别启动redis-sentinel进程和redis-server进程

./redis-server ./redis.conf

./redis-sentinel ./sentianel.conf

当master宕机后,redis-sentianel会自动执行failover过程。

 

 

master上执行

kill -9  redis-server

sentinel进程自动执行failover,默认配置下,大概30秒后切换完成。

 

注意:

1.Cluster模式不支持sentianel,

2.客户端需要重新连接sentianel服务获取最新的master连接信息。

3.如果主服务器挂掉后,slave顶上,然后把之前的master启动,则启动后他会自动变成slave.


作者:perfectpdl 发表于2014-9-12 22:35:54 原文链接
阅读:70 评论:0 查看评论

相关 [redis sentinel redis] 推荐:

Redis-sentinel实现redis HA 过程

- - CSDN博客架构设计推荐文章
本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. Redis-sentinel 介绍:. Redis-sentinel是官方介绍的监控redis的工具,实际是一个进程,通过tcp socket通信. (1)     监控 实时监测当前master和slave的状态.

Redis Sentinel的配置和使用

- - 丕子
Redis主从系统,除了做数据冗余,开可以做高可用性灾备. Reids提供了Sentinel工具来监控各Master的状态,如果Master异常,则会做主从切换,将slave作为master,将master作为slave. 主从切换之后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变.

Redis核心解读–集群管理工具(Redis-sentinel)

- - NoSQLFan
Redis作为高性能的key-value存储,一直在单实例上表现良好,但是长期以来一直缺乏一种官方的 高可用方案支持. 于是 Redis-sentinel应运而生,提供了对客户端透明的高可用支持. 下面文章对Redis- sentinel的原理进行了系统的讲解. 文章来源: www.wzxue.com.

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

- - 开源软件 - ITeye博客
本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求;.

基于jedis、redis-sentinel的redis主从、高可用、sharding架构

- - 开源软件 - ITeye博客
最近项目上需要对Redis(目前redis用的是2.8版本)做高可用、集群等优化,就扩展了jedis客户端(MasterSlaveJedis、MasterSlaveJedisPool、ShardedMasterSlaveJedis、ShardedMasterSlaveJedisPool),以满足以下几个需求:.

在Redis Sentinel环境下,jedis该如何配置 - iVictor - 博客园

- -
在Redis主从复制架构中,如果master出现了故障,则需要人工将slave提升为master,同时,通知应用侧更新master的地址. 这样方式比较低效,对应用侧影响较大. 为了解决这个问题,Redis 2.8中推出了自己的高可用方案Redis Sentinel. Redis Sentinel架构图如下:.

Redis 负载监控——redis-monitor

- - ITeye资讯频道
redis-monitor是一个Web可视化的 redis 监控程序. 使用 Flask 来开发的,代码结构非常简单,适合移植到公司内网使用. redis 服务器信息,包括 redis 版本、上线时间、 os 系统信息等等. 实时的消息处理信息,例如处理 command 数量、连接总数量等. 内存占用、 cpu 消耗实时动态图表.

Redis 起步

- - 博客园_首页
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章:. Redis是一个key-value存储系统. 和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型.

redis 配置

- - 谁主沉浮
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写). # 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB. # daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes. # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址.

Cassandra代替Redis?

- - Tim[后端技术]
最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例. 而这篇 百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例. 考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库、内存、还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别.