背景:自己搭建的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即可。
这样就解决了这次问题。