这里只做记录说明
Redis的主从配置网上很多文章,百度一大堆,安装流程应该都可以配置通。我使用的这篇文章
https://blog.****.net/u010648555/article/details/79427606
配置完成主从后,继续哨兵的配置,同样网上很多文章,我参考
https://blog.****.net/u010648555/article/details/79430105
在配置哨兵的过程中遇到问题,哨兵搭建都成功,相互之间也知道对方的存在,就是无法通信,无法启动故障迁移。
原因主要是因为 sentinel.conf 配置确实一个配置,不过添加那一句貌似就裸奔了,要完善处理,可以参考这骗文章:
https://www.cnblogs.com/zhoujinyi/p/5585723.html
我测试时添加了
protected-mode no
正式环境建议研究配置,都给密码,改端口
如下时我的 sentinel.conf 完整配置
# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,,和 。 #当前Sentinel服务运行的端口
port protected-mode no
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster
修改后即可测试成功自动迁移。
下面就是把Redis和Sentinel都弄成Windows 的服务运行。
将Redis做成服务运行,这篇文章也说得清楚,
https://www.cnblogs.com/zoro-zero/p/6437519.html
不过没有说将哨兵做成服务。下面是我自己测试成功,可以将哨兵做成服务的脚本
(在redis目录下执行,管理员执行)
//删除服务,默认的Redis
redis-server --service-uninstall
//删除服务,指定的服务名称
redis-server --service-uninstall --service-name RedisService1 //安装redis
redis-server --service-install redis.windows.conf --loglevel verbose //安装其他名称的服务
redis-server --service-install --service-name redisService1 --port //将Sentinel安装为Windows服务
redis-server --service-install sentinel.conf --sentinel --service-name RedisSentinel --port
另外,测试哨兵的时候,这个命令也很好用,比 shutdown 方便。
测试利器, debug sleep 0.1就相当于执行了一条开销为100ms的命令
127.0.0.1:6379> debug sleep 1
OK
(1.00s)
debug error
测试利器, debug error,redis直接会返回一个错误应答
127.0.0.1:6379> debug error "test"
(error) test