Redis哨兵(sentinel)模式搭建

一、Sentinel介绍

之前骚了一波Redis的简介及应用场景,今天试了下他的哨兵模式;

Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,

并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。

Redis提供的sentinel(哨兵)机制,通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器,

并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

二、Redis Sentinel搭建

测试采用2个哨兵,1个主redis,2个从redis。
复制5份redis.windows.conf文件并重命名如下(开发者可根据自己的开发习惯进行重命名):

master.6379.conf 配置:

port 6379
#设置连接密码
requirepass grs
#连接密码
masterauth grs

slave.6380.conf 配置:

port 6380
requirepass grs
masterauth grs
dbfilename dump6380.rdb
#配置master
slaveof 127.0.0.1 6379

slave.6381.conf 配置:

port 6381
requirepass grs
masterauth grs
dbfilename dump6381.rdb
#配置master
slaveof 127.0.0.1 6379

sentinel.63791.conf 配置(将原配置文件清空后添加如下内容)(另一个一样,只需要修改下端口):

port 63791
#主master,2个sentinel选举成功后才有效,这里的master-1是名称,在整合的时候需要一致,这里可以随便更改
sentinel monitor master-1 127.0.0.1 6379 2
#判断主master的挂机时间(毫秒),超时未返回正确信息后标记为sdown状态
sentinel down-after-milliseconds master-1 5000
#若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout master-1 18000
#身份认证
sentinel auth-pass master-1 grs
#选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步,这个数字越小,完成故障转移所需的时间就越长
sentinel parallel-syncs master-1 1

这里有三个问题需要注意
第一,若通过redis-cli -h 127.0.0.1 -p 6379连接,无需改变配置文件,配置文件默认配置为bind 127.0.0.1(只允许127.0.0.1连接访问)
若通过redis-cli -h 192.168.180.78 -p 6379连接,需改变配置文件,配置信息为bind 127.0.0.1 192.168.180.78(只允许127.0.0.1和192.168.180.78访问)或者将bind 127.0.0.1注释掉(允许所有远程访问)
第二,masterauth为所要连接的master服务器的requirepass,如果一个redis集群中有一个master服务器,两个slave服务器,当master服务器挂掉时,sentinel哨兵会随机选择一个slave服务器充当master服务器,鉴于这种机制,解决办法是将所有的主从服务器的requirepass和masterauth都设置为一样。
第三,sentinel monitor master-1 127.0.0.1 6379 2 行尾最后的一个2代表什么意思呢?我们知道,网络是不可靠的,有时候一个sentinel会因为网络堵塞而误以为一个master redis已经死掉了,当sentinel集群式,解决这个问题的方法就变得很简单,只需要多个sentinel互相沟通来确认某个master是否真的死了,这个2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。(sentinel集群中各个sentinel也有互相通信,通过gossip协议)。
按如下循序依次启动服务
1、redis-server master.6379.conf

2、redis-server slave.6380.conf

3、redis-server slave.6381.conf

4、redis-server sentinel.63791.conf --sentinel(linux:redis-sentinel sentinel.63791.conf)

5、redis-server sentinel.63792.conf --sentinel(linux:redis-sentinel sentinel.63792.conf)

查看master状态:

查看slave状态:

查看sentinel状态:

验证redis sentinel的主从切换:
1、首先关闭主redis(6379)服务(shutdown)。
2、查看哨兵,发现端口号为6380的从服务变成了主服务,sentinel自动完成了故障切换。

3、启动刚才被shutdown的6379服务并查看,发现它变成了从服务。

到这 我搭建和演示就结束了

后续单机版 spring 整合使用慢慢玩吧,成功了再来

原文地址:http://blog.51cto.com/13842645/2309015

时间: 2024-11-02 14:49:58

Redis哨兵(sentinel)模式搭建的相关文章

配置Redis的Sentinel模式

需要使用Sentinel,至少用到3个类型的Reids服务器 1.Master服务器 无需特殊需求的情况下,只要设置IP和端口即可,默认127.0.0.1 6379 2.Slave服务器 除了设置自己的IP和端口,还要设置slaveof后面的值为Master的IP和端口,用逗号分割 格式:slaveof 127.0.0.1 6379 3.Sentinel服务器 1 #TwRedis(同一个Sentinel可以同时监听多个Master服务器) 2 #设置要监听的服务器名称 IP和端口,最后一个2表

深入剖析Redis系列: Redis集群模式搭建与原理详解

前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 Redis 在 分布式 方面的需求.当遇到 单机内存.并发.流量 等瓶颈时,可以采用 Cluster 架构方案达到 负载均衡 的目的. 本文将从 集群方案.数据分布.搭建集群.节点通信.集群伸缩.请求路由.故障转移.集群运维 等几个方面介绍 Redis Cluster. 正文 1. Redis集群方

redis哨兵机制环境搭建

安装:redis.conf(主库配置)1.bind 10.40.0.0 修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址 2.port 6600 #端口号 protected-mode no保护模式修改为否,允许远程连接 4.daemonize yes #后台运行 requirepass "123456789" 设定密码 masterauth "123456789" 设定主库密码与当前库密码同步,保证从库能够提升为主库 appendonly ye

redis 哨兵机制环境搭建

一.主从同步 参考:https://www.cnblogs.com/zwcry/p/9046207.html 二.哨兵配置(sentinel.config) 简单修改sentinel.config内容 1.初始化监听主redis #设置主redis ip 端口 哨兵服务投票数 sentinel monitor mymaster 127.0.0.1 6381 1 2.设置后台运行哨兵服务 daemonize yes 三.sentinel.config其他配置 1.其他配置会自主更新,不需要手配 2

Redis(九)高可用专栏之Sentinel模式

本文讲述Redis高可用方案中的哨兵模式--Sentinel,RedisClient中的Jedis如何使用以及使用原理. Redis主从复制 Redis Sentinel模式 Jedis中的Sentinel Redis主从复制 Redis主从复制是Sentinel模式的基石,在学习Sentinel模式前,需要理解主从复制的过程. 1.保证数据一致性的机制 Redis主从复制的含义和Mysql的主从复制一样,即利用Slave从服务器同步Master服务器数据的副本.主从复制的最为关键的点在于主从数

10、redis哨兵集群高可用

1 Redis的分片技术 1.1 分片介绍 1.1.1 传统方式的问题 说明:如果采用单台redis时,如果redis出现宕机现象.那么会直接影响我们的整个的服务. 1.1.2 采用分片模式 说明:由一台redis扩展到多台redis.由多台redis共同为用户提供服务.并且每台redis中保存1/N的数据. 好处:如果一台redis出现了问题.不会影响整个redis的服务. 1.1.3 配置多台redis 说明:将redis.conf文件拷贝3份到shard文件夹下.分别形成6379/6380

Redis哨兵模式(Sentinel)的搭建

一.Redis的哨兵模式 Sentinel是Redis官方提供的一种高可用方案(除了Sentinel,Redis Cluster是另一种方案),它可以自动监控Redis master/slave的运行状态,如果发现master无法访问了,就会启动failover把其中一台可以访问的slave切换为master,并且通过pub/sub事件通知Redis客户端新的master的ip地址. 支持Sentinel的Redis客户端(例如java的Jedis)会在连接Redis服务器的时候向Sentine

redis主从集群搭建及容灾部署(哨兵sentinel)

Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 l  Redis安装 l  整体架构 l  Redis主从结构搭建 l  Redis容灾部署(哨兵sentinel) l  Redis常见问题 Redis安装 发行版:CentOS-6.6 64bit 内核:2.6.32-504.el6.x86_64 CPU:intel-i7 3.6G 内存:2G 下载redis,选择合适的版本 [[email protected] software]# wget http:/

Sentinel Redis哨兵模式

Redis_sentinel 哨兵模式 Redis 架构一般是一主多从:Sentinel 一般3组进行相互监控:     Redis wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz cd redis make && make install cp -rp redis/src/redis-trib.rb /usr/local/bin/ cp -rp redis/src