redis集群之Sentinel哨兵高可用

Sentinel是官网推荐的高可用(HA)解决方案,可以实现redis的高可用,即主挂了从代替主工作,在一台单独的服务器上运行多个sentinel,去监控其他服务器上的redis master-slave状态(可以监控多个master-slave),当发现master宕机后sentinel会在slave中选举并启动新的master。至少需要3台redis才能建立起基于哨兵的reids集群。

一、通过sentinel(哨兵)实现redis集群(最少3台)
目的:高可用故障切换,主挂了会选举新的主。每台redis服务器都要配置至少一个哨兵来监控redis的健康状态。
注意:sentinel最好不要和Redis部署在同一台机器,不然Redis的服务器挂了以后,sentinel也挂了

注意:
需要事先搭建好redis主从环境并测试数据同步正常,再搭建sentinel。
redis2.8.9 不能很好的支持sentinel,最好使用3.0以上的,我这里使用的是redis-3.2.11.tar.gz (http://download.redis.io/releases/redis-3.2.11.tar.gz)

1、主从与集群关系:
首先无论是主从还是集群,每一台服务器里面的内容是一样的,客户端访问一条URL的时候,无论请求到哪一台服务器上返回的页面都是一样的,客户端是感觉不到的。

我的理解是集群是包含主从的,两台叫主从,两台以上叫集群。sentinel能够实现主从的故障切换,但是只有2台的主备环境是无法实现的,最少需要3台(1主2从)

2、通过sentinel实现HA故障转移的原理(HA-failover)
(1)Sentinel介绍:
Sentinel(哨兵) 是Redis2.8以后开始提供的自带模块,主要负责HA(高可用故障切换),Sentinel可以同时监控多个Redis服务器实例。而且Sentinel可以部署多个实例同时对redis服务器进行监控(就像多个哨兵同时站岗一样)。
(2)Sentinel工作原理:
当某一台Sentinel发现Master挂掉后,它会询问其他Sentine,如果大多数Sentinel都返回Master挂掉的信息,才进行故障切换,Sentinel会进行选举并选取其中一台Slave为新的Master,然后将其他Slaves指向新的Master。当旧的Master恢复后会降级成slave.

出自https://www.cnblogs.com/Xrinehart/p/3502198.html http://www.16boke.com/article/detail/204

3、sentinel 针对 redis故障转移的安装与配置

(1) 准备环境redis主从环境:1主2从 (我这里提前搭建好了主从环境,使用redis-3.2.11.tar.gz)
redis集群之Sentinel哨兵高可用_第1张图片
(2) 在master-172.16.12.33上查看主从状态

# /alidata/redis/bin/redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379> info replication
# Replication
role:master                     #当前redis为master
connected_slaves:2              #当前redis有两个[奴隶]
slave0:ip=172.16.12.62,port=6381,state=online,offset=18929,lag=0            #[奴隶0]的ip是172.16.12.62,端口6381
slave1:ip=172.16.12.55,port=6380,state=online,offset=18929,lag=0            #[奴隶1]的ip是172.16.12.55,端口6380

(3) 在slave1-172.16.12.55上查看主从状态

# /alidata/redis/bin/redis-cli -h 127.0.0.1 -p 6380
127.0.0.1:6380> info 

你可能感兴趣的:(redis,redis,sentinel,bootstrap)