Redis Sentinel配置使用过程中的一个坑(DENIED Redis is running in protected mode)

        根据官网示例配置完sentinel.conf,大致添加如下配置项:

    port 26379
    sentinel monitor mymaster 172.17.16.7 6379 2
    sentinel auth-pass mymaster 123456
    sentinel down-after-milliseconds mymaster 30000
    sentinel failover-timeout mymaster 900000
    sentinel parallel-syncs mymaster 1

        随后启动sentinel

       # ./redis-sentinel sentinel.conf

       java程序中使用JedisSentinelPool建立redis连接池

   Set sentinels = new HashSet();
   sentinels.add("172.17.16.7:26379");
   sentinels.add("172.17.16.8:26379");
   sentinels.add("172.17.16.9:26379");
   JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels, "123456");
      报错:

   DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to    clients.......

      使用redis-cli -h 127.0.0.1 -p 26379连接sentinel可以执行命令,而使用redis-cli -h 172.17.16.7 -p 26379连接sentinel执行命令则会报同上的错误。

      查遍了网上没有找到相关的问题分析和解决的案例,所以只能自己猜测和排查,初步怀疑是通过172.17.16.7访问sentinel时受限。

      由于此错误和redis server的protect-mode为yes的访问错误颇为相似,官方在redis.conf的注释说明中有protected-mode这一配置项,但sentinel.conf的注释中完全没有提到过该配置项,我很疑惑,但还是尝试在sentinel.conf中加入

   protected-mode no
      之后保存并重新启动sentinel,之后用Java程序建立连接池,没有报错,且可以对redis server进行数据处理,问题解决。

      本文原创,转载请注明出处!

      

 



 

      


       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值