Redis保护模式开启问题解决

作者: 小丫嘛小儿郎 | 来源:发表于2018-11-22 17:38 被阅读112次

    今天上班时候,同事反馈我们负责的一个系统服务挂了,因为主负责人有事不在,我作为第二负责人(其实是刚来不久的新人)开始着手处理这个事情。

    根据同事描述,看了一下对应的dubbo服务,显示"没有提供者",看了一下系统页面,也打不开了,以为只是常规的配置更改影响到了,我便重新打包上传、重启部署等待系统恢复;然而一二分钟过去了,dubbo服务迟迟没有动静,页面依旧打不开……怀疑是关联系统没有启动的原因,检查了一下关联系统正常,不放心,又重启了关联系统,问题依旧……


    image.png

    然后继续分析,我就查看日志文件,发现了这么一段话:

    image.png
    redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled
    

    怀疑是Redis保护模式开启了,导致Redis连不上导致的,尝试用客户端连接,果然出现了超时。至此,原因算是找到了,知道了问题原因,便解决了问题的一半,何况这种开源软件真的良心,把解决方案都列出来了:
    1)通过从服务器的同一主机连接到Redis,只需禁用保护模式从环回接口发送命令'CONFIG SET protected-mode no'正在运行,但如果您这样做,则无法通过互联网公开访问。使用CONFIG REWRITE使此更改成为永久更改。
    2)或者,您可以通过编辑Redis配置文件并将保护模式选项设置为“no”来禁用保护模式,然后重新启动服务器。
    3)如果您手动启动服务器进行测试,请使用“--protected-mode no”选项重新启动它。
    4)设置绑定地址或验证密码。
    参考了网上的一篇资料 解决使用jedis连接是报DENIED Redis is running in protected mode错误
    顺便检查了一下相应的配置

    1. redis 时只能通过本地localhost (127.0.0.1)这个来链接,而不能用网络ip(192.168..)这个链接,问题然如果用网络ip 链接会报错误: 处于保护模式,只能本地链接,我们需要修改配置文件../redis.conf
    # bind 127.0.0.1  这个已经注释
    

    2.Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

    daemonize  yes   已经改为yes
    
    1. 将保护模式关闭
    protected-mode no 
    

    搞定上述步骤准备重启,关键的是 没反应应该是你启动服务端的时候没有带上配置文件
    你配置好了,但要重新启动redis,如果还是报一样的错误,很可能是没有启动到配置文件,所以需要真正的和配置文件启动需要:

    ./redis-server redis.conf 
    

    这样,启动成功!


    image.png

    最后,检查dubbo服务正常,刷新页面,页面终于正常显示。大功告成,记录下心得~


    image.png

    附上linux安装redis并在后台启动的链接

    相关文章

      网友评论

        本文标题:Redis保护模式开启问题解决

        本文链接:https://www.haomeiwen.com/subject/neglqqtx.html