redis设置密码后为什么-a参数无效?

    问题:linux系统编译安装redis,设置密码后,使用客户端连接命令时-a password参数无效,登录后还需要进行AUTH PASSWORD进行身份验证。这是什么原因呢?有没有知道的大佬?
    redis安装步骤:
    1、解压tar包,进入目录后进行make
    2、make PREFIX=安装目录
    3、在配置文件中加入密码
    4、进入bin目录,执行登录命令:./redis-cli -p 7000 -a eCmp$208后还需要进行一次身份验证。

如图:

img

在redis安装后设置密码后,使用客户端连接时-a参数不能生效可能是因为redis配置文件的bind选项未指定客户端允许使用的绑定IP地址。因此客户端连接时即使使用了-a参数也无法通过认证。

解决方法是,修改redis配置文件redis.conf,在bind选项中加入0.0.0.0表示允许任意IP连接redis服务器。例如:

bind 0.0.0.0

保存修改后,重新启动redis服务器。然后在使用redis-cli登录时,再加上-a选项指定密码即可,无需再执行AUTH命令进行身份验证。

  • 文章:Redis持久化之AOF日志:宕机了,Redis如何避免数据丢失? 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: redis脑裂是什么?如何解决中的 解决方案: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • redis.conf文件:
    在这里插入图片描述

    redis中有两个配置参数:

    (旧版本)

    min-slaves-to-write 3

    min-slaves-max-lag 10

    (新版本)

    min-replicas-to-write 3

    min-replicas-max-lag 10

    第一个参数表示最少的salve节点为3个,第二个参数表示数据复制和同步的延迟不能超过10秒

    配置了这两个参数:如果发生脑裂:原master会在客户端写入操作的时候拒绝请求。这样可以避免大量数据丢失。

  • 您还可以看一下 刘磊老师的Redis入门到精通视频教程课程中的 Redis持久化策略总结小节, 巩固相关知识点