无法使用jedis连接redis sentinel

时间:2018-05-25 07:34:33

标签: redis redis-sentinel

我正在尝试使用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,或者未知

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

确保在protected-mode文件中将no设置为sentinel.conf。这为我解决了问题。

答案 1 :(得分:1)

使用localhost而不是127.0.0.1对我有用。

  

默认情况下,Sentinel将无法通过不同于以下接口的接口访问   本地主机,可以使用“ bind”指令绑定到网络列表   接口,或者通过以下方式禁用受保护的模式:   将其添加到此配置文件。