5.90-部署Redis哨兵
5.91-Redis哨兵测试
5.90-部署Redis哨兵
5.90.1 环境准备
准备3台机器,其中每台机器上都有两个角色,分配如下: | 主机名 | IP:Port | 角色 | | ------------ | ------------ | ------------ | | aming01 | 192.168.222.128:6379 |Redis Master| |aming02|192.168.222.129:6379|Redis Slave1| |aming03|192.168.222.130:6379|Redis Slave2| |aming01|192.168.222.128:26379|Sentinel1| |aming02|192.168.222.129:26379|Sentinel2| |aming03|192.168.222.130:26379|Sentinel3|
5.90.2 部署
-
安装Redis
步骤略 -
部署Redis主从
步骤略 -
部署Sentinel
三台Sentinel配置文件是一样的,编辑配置文件
vi /etc/sentinel.conf #内容如下
# 端口
port 26379
# 是否后台启动
daemonize yes
# pid文件路径
pidfile /var/run/redis-sentinel.pid
# 日志文件路径
logfile "/var/log/sentinel.log"
# 定义工作目录
dir /tmp
# 定义Redis主的别名, IP, 端口,这里的2指的是需要至少2个Sentinel认为主Redis挂了才最终会采取下一步行为
sentinel monitor mymaster 127.0.0.1 6379 2
# 如果mymaster 30秒内没有响应,则认为其主观失效
sentinel down-after-milliseconds mymaster 30000
# 如果master重新选出来后,其它slave节点能同时并行从新master同步数据的台数有多少个,显然该值越大,所有slave节
##点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保守的设置
##为1,同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
sentinel parallel-syncs mymaster 1
# 该参数指定一个时间段,在该时间段内没有实现故障转移成功,则会再一次发起故障转移的操作,单位毫秒
sentinel failover-timeout mymaster 180000
# 不允许使用SENTINEL SET设置notification-script和client-reconfig-script。
sentinel deny-scripts-reconfig yes
5.90.3 启动服务
-
启动顺序:
主Redis -> 从Redis -> Sentinel1/2/3 -
Sentinel 启动命令:
redis-sentinel /etc/sentinel.conf
Sentinel操作
sentinel master mymaster -
输出被监控的主节点的状态信息
sentinel slaves mymaster -
查看mymaster的从信息
sentinel sentinels mymaster -
查看其他Sentinel信息
5.91 测试
-
停止Redis从
-
停止Redis主
-
停止sentinel1
-
客户端连接问题
-
使用sentinel后,客户端(如,php)如何连Redis呢?
参考:https://blog.51cto.com/chenql/1958910