這里只做記錄說明
Redis的主從配置網上很多文章,百度一大堆,安裝流程應該都可以配置通。我使用的這篇文章
https://blog.csdn.net/u010648555/article/details/79427606
配置完成主從后,繼續哨兵的配置,同樣網上很多文章,我參考
https://blog.csdn.net/u010648555/article/details/79430105
在配置哨兵的過程中遇到問題,哨兵搭建都成功,相互之間也知道對方的存在,就是無法通信,無法啟動故障遷移。
原因主要是因為 sentinel.conf 配置確實一個配置,不過添加那一句貌似就裸奔了,要完善處理,可以參考這騙文章:
https://www.cnblogs.com/zhoujinyi/p/5585723.html
我測試時添加了
protected-mode no
正式環境建議研究配置,都給密碼,改端口
如下時我的 sentinel.conf 完整配置
# 這個是Redis6379配置內容,其他文件同理新增然后改一下端口即可,26380,和 26381。 #當前Sentinel服務運行的端口 port 26379 protected-mode no # 哨兵監聽的主服務器 sentinel monitor mymaster 127.0.0.1 6379 2 # 3s內mymaster無響應,則認為mymaster宕機了 sentinel down-after-milliseconds mymaster 3000 #如果10秒后,mysater仍沒啟動過來,則啟動failover sentinel failover-timeout mymaster 10000 # 執行故障轉移時, 最多有1個從服務器同時對新的主服務器進行同步 sentinel parallel-syncs mymaster 1
修改后即可測試成功自動遷移。
下面就是把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 10001 //將Sentinel安裝為Windows服務 redis-server --service-install sentinel.conf --sentinel --service-name RedisSentinel --port 26379
另外,測試哨兵的時候,這個命令也很好用,比 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