首页 > 解决方案 > redis-cli 如何使用密码进行身份验证并发出命令?

问题描述

当没有设置密码时,我们可以发出例如;

>> redis-cli keys * 

或者

>> redis-cli config set requirepass "aaaaaa"

但是,在我们发布了后者之后,第一个不再起作用并导致:

>> redis-cli keys *
  (error) NOAUTH Authentication required.  

我们需要进行身份验证。当然。

>> redis-cli AUTH aaaaaa
   OK
>> redis-cli keys *
   (error) NOAUTH Authentication required. 

我们如何进行身份验证然后能够执行命令?

这不可能吗?只有Heredocs?

我试过了:

>> redis-cli AUTH aaaaaa && config set requirepass "aaaaaa"

但没有奏效。在 aaaaaa 之后也是分号。不行。

如何?

标签: redis

解决方案


这些AUTH命令仅在 tcp 连接期间持续。每次新调用redis-cli都会创建一个新连接,因此您必须在每次调用时进行身份验证。

可以在一次调用时执行多个 redis 命令redis-cli:它们必须由\n

因此,这将起作用:

echo -e 'AUTH aaaaaa\nkeys *' | redis-cli  

注意:另一个答案还提供了一种传递由\nto分隔的参数的方法redis-cli


推荐阅读