我正在尝试使用JedisSentinelPool连接到redis sentinel
private static final JedisSentinelPool pool = new JedisSentinelPool("mymaster", getSentinels()); private static Set<String> getSentinels(){ Set<String> mysentinels = new HashSet<>(); mysentinels.add(new HostAndPort("localhost", 26379).toString()); return mysentinels; }
这给了我以下错误:
引起:redis.clients.jedis.exceptions.JedisConnectionException:所有下标,无法确定mymaster master在哪里运行...
然而,我可以看到我的哨兵正在奔跑。所以参考这篇文章: https://github.com/luin/ioredis/issues/64 我在我的redis主服务器上尝试了以下命令
./redis-cli -h redis-1 -p 26379
我收到了以下错误:
无法在redis-1:26379连接到Redis:提供的是nodename或servname,或者未知
这里有什么问题?
答案 0 :(得分:1)
确保在protected-mode
文件中将no
设置为sentinel.conf
。这为我解决了问题。
答案 1 :(得分:1)
使用localhost而不是127.0.0.1对我有用。
默认情况下,Sentinel将无法通过不同于以下接口的接口访问 本地主机,可以使用“ bind”指令绑定到网络列表 接口,或者通过以下方式禁用受保护的模式: 将其添加到此配置文件。