111 发表于 2016-12-17 10:16:06

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
  结构如图:

------------------
配置过程中,如果没有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-cli -h 192.168.7.40 -p 6379 info Replication

  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&
  
   # 查询master状态
   redis-cli -h 192.168.7.46 -p 26379 info Sentinel

配置完成



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



  #查看Sentinel状态
  redis-cli -h 192.168.7.46 -p 26379 info Sentinel




 #可以看到Redis server主的IP地址已经变成192.168.7.142。


  #查看192.168.7.40的状态,如果配置正常,它的主为142 




# OK 自动切换已经实现了。
# 如果不是主宕机,而是从宕机,那么不会发生切换行为,只会把宕机的那台从集群中剔除。
# 已宕机的机器,如果再次加入集群,只要它成为了当前主的从机,则Sentinel会自动发现,并将其加入集群成员。
页: [1]
查看完整版本: redis HA方案