背景:自己搭建的Linux環境的redis 哨兵集群,配置文件如下 根據該鏈接 https://juejin.im/post/5b7d226a6fb9a01a1e01ff64
其中 sentenal的配置文件為:
分別拷貝三份 redis-sentinel.conf
文件到 /usr/local/redis-sentinel
目錄下面。三個配置文件分別對應 master
、slave1
和 slave2
三個 Redis
節點的 哨兵配置。
$ sudo cp /usr/local/redis-4.0.11/sentinel.conf /usr/local/redis-sentinel/sentinel-16380.conf $ sudo cp /usr/local/redis-4.0.11/sentinel.conf /usr/local/redis-sentinel/sentinel-26380.conf $ sudo cp /usr/local/redis-4.0.11/sentinel.conf /usr/local/redis-sentinel/sentinel-36380.conf
節點1:sentinel-16380.conf
protected-mode no bind 0.0.0.0 port 16380 daemonize yes sentinel monitor master 127.0.0.1 16379 2 sentinel down-after-milliseconds master 5000 sentinel failover-timeout master 180000 sentinel parallel-syncs master 1 sentinel auth-pass master 123456 logfile /var/log/redis/sentinel-16380.log
- 節點2:sentinel-26380.conf
protected-mode no bind 0.0.0.0 port 26380 daemonize yes sentinel monitor master 127.0.0.1 16379 2 sentinel down-after-milliseconds master 5000 sentinel failover-timeout master 180000 sentinel parallel-syncs master 1 sentinel auth-pass master 123456 logfile /var/log/redis/sentinel-26380.log
- 節點3:sentinel-36380.conf
protected-mode no bind 0.0.0.0 port 36380 daemonize yes sentinel monitor master 127.0.0.1 16379 2 sentinel down-after-milliseconds master 5000 sentinel failover-timeout master 180000 sentinel parallel-syncs master 1 sentinel auth-pass master 123456 logfile /var/log/redis/sentinel-36380.log
Sentinel啟動驗證:
按順序分別啟動 16380
,26380
和 36380
三個 Sentinel
節點,啟動命令和啟動日志如下
$ sudo redis-sentinel /usr/local/redis-sentinel/sentinel-16380.conf $ sudo redis-sentinel /usr/local/redis-sentinel/sentinel-26380.conf $ sudo redis-sentinel /usr/local/redis-sentinel/sentinel-36380.conf
啟動完成后、我們打開防火牆端口,並使用redisDesktopManager鏈接成功、
set/get方法正常:
但是,當我使用springboot 鏈接的時候、報錯:
但是在啟動過程中我們發現已經開始監聽master
所以在我們仔細看完獲取連接的方法
后發現有如下信息:
這是我修改后的信息、修改之前、這里是 127.0.0.1:36379 ,原來這才是項目訪問的redis地址、所以才一直報錯、連接不到。
所以將所有的 sentenal.conf 文件中的
這個IP 改為你服務器的IP即可。
這樣就解決了這次問題。