redis HA方案

IP分布情况:

Redis Sentinel   : 192.168.7.46

Redis server主   : 192.168.7.44

Redis server从1 : 192.168.7.40

Redis server从2 : 192.168.7.142

结构如图:

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

------------------

配置过程中,如果没有4台机器,那只要2台也可以,其中一台运行Sentinel,另一台运行3个不同端口的redis服务即可。

集群最小单位为:1个Sentinel、2个redis;

------------------

开始:

1. 安装redis

源码直接make 即可完成。应用程序在src文件中

 

2. 启动Redis-server服务

      #redis的配置文件可以直接用。

      #启动 Redis server服务 (IP 44、40、142)

      redis-server /usr/local/redis-3.0.1/redis.conf   &

 

      #配置40、142为从库,分别执行(主从配置无需配置)

      redis-cli slaveof 192.168.7.44 6379

 

      #查看主上的主从状态

      redis-cli -h 192.168.7.44 -p 6379 info Replication

 

      #可以看到从状态

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

 

#随意查看一台从的主从状态

redis-cli -h 192.168.7.40 -p 6379 info Replication

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

3. 启动Redis Sentinel (ip:46)

# Sentinel 的配置文件为sentinel.conf 复制以下配置,修改IP地址即可。
vi sentinel.conf
sentinel monitor test1 192.168.7.40 6379 1 #修改IP地址,IP可以是集群中的主机IP地址。
sentinel down-after-milliseconds test1 5000 #默认1s检测一次,这里配置超时5000毫秒为宕机。
sentinel failover-timeout test1 900000
sentinel parallel-syncs test1 2     

#启动 Redis Sentinel 
redis-sentinel sentinel.conf  &

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

 # 查询master状态

 redis-cli -h 192.168.7.46 -p 26379 info Sentinel

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

配置完成

4. 演示故障

#目前状态:

      #Redis Sentinel   : 192.168.7.46

      #Redis server主  : 192.168.7.44

      #Redis server从1: 192.168.7.40

      #Redis server从2: 192.168.7.142 

 

      #关闭Redis server主  : 192.168.7.44

      redis-cli -h 192.168.7.44 -p 6379 shutdown

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

#查看Sentinel状态

 redis-cli -h 192.168.7.46 -p 26379 info Sentinel

Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

 #可以看到 Redis server主的IP地址已经变成192.168.7.142。
  #查看192.168.7.40的状态,如果配置正常,它的主为142  
Redis Sentinel;Redis Sentinel配置;redis集群;redis故障转移 - 李坤山 - 李坤山VS断悬

# OK 自动切换已经实现了。

# 如果不是主宕机,而是从宕机,那么不会发生切换行为,只会把宕机的那台从集群中剔除。

# 已宕机的机器,如果再次加入集群,只要它成为了当前主的从机,则Sentinel会自动发现,并将其加入集群成员。

猜你喜欢

转载自shiguanghui.iteye.com/blog/2214547
今日推荐