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
配置完成
#目前状态:
#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
# OK 自动切换已经实现了。
# 如果不是主宕机,而是从宕机,那么不会发生切换行为,只会把宕机的那台从集群中剔除。
# 已宕机的机器,如果再次加入集群,只要它成为了当前主的从机,则Sentinel会自动发现,并将其加入集群成员。