在CentOS上配置Redis哨兵模式需要以下几个步骤:
1. 安装Redis
首先,确保你已经在CentOS上安装了Redis。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release sudo yum install redis
2. 配置Redis实例
为每个Redis实例创建配置文件。假设你有三个Redis实例,分别命名为redis-master
、redis-slave1
和redis-slave2
。
redis-master.conf
port 6379 daemonize yes pidfile /var/run/redis_6379.pid logfile /var/log/redis/redis_6379.log dir /var/lib/redis/6379
redis-slave1.conf 和 redis-slave2.conf
port 6380 daemonize yes pidfile /var/run/redis_6380.pid logfile /var/log/redis/redis_6380.log dir /var/lib/redis/6380 slaveof 127.0.0.1 6379
3. 启动Redis实例
启动每个Redis实例:
sudo redis-server /etc/redis/redis-master.conf sudo redis-server /etc/redis/redis-slave1.conf sudo redis-server /etc/redis/redis-slave2.conf
4. 配置哨兵
创建哨兵配置文件sentinel.conf
:
port 26379 daemonize yes pidfile /var/run/redis-sentinel.pid logfile /var/log/redis/sentinel.log dir /var/lib/redis-sentinel sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
解释:
sentinel monitor mymaster 127.0.0.1 6379 2
:监控名为mymaster
的主节点,地址为127.0.0.1
,端口为6379
,至少需要2个哨兵同意主节点失效才会进行故障转移。sentinel down-after-milliseconds mymaster 5000
:主节点在5秒内没有响应则认为其下线。sentinel failover-timeout mymaster 60000
:故障转移的超时时间为60秒。sentinel parallel-syncs mymaster 1
:故障转移时,最多允许1个从节点同时进行同步。
5. 启动哨兵
启动哨兵:
sudo redis-sentinel /etc/redis/sentinel.conf
6. 验证配置
你可以通过以下命令查看哨兵的状态:
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
如果配置正确,你应该能看到主节点的地址和端口。
7. 测试故障转移
为了测试故障转移,你可以手动停止主节点:
sudo redis-cli -p 6379 shutdown
然后观察哨兵日志和从节点是否自动升级为主节点。
通过以上步骤,你就可以在CentOS上成功配置Redis的哨兵模式。