redis-cli 如何使用密码进行身份验证并发出命令?

mom*_*omo 5 redis

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

>> redis-cli keys * 
Run Code Online (Sandbox Code Playgroud)

或者

>> redis-cli config set requirepass "aaaaaa"
Run Code Online (Sandbox Code Playgroud)

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

>> redis-cli keys *
  (error) NOAUTH Authentication required.  
Run Code Online (Sandbox Code Playgroud)

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

>> redis-cli AUTH aaaaaa
   OK
>> redis-cli keys *
   (error) NOAUTH Authentication required. 
Run Code Online (Sandbox Code Playgroud)

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

这不可能吗?仅限继承人吗?

我试过了:

>> redis-cli AUTH aaaaaa && config set requirepass "aaaaaa"
Run Code Online (Sandbox Code Playgroud)

但没有成功。aaaaaa 后面还有分号。不行。

如何?

小智 10

您可以传递 -a 参数来验证 redis-cli 命令,如下所示:

redis-cli -h 127.0.0.1 -p 6379 -a mypassword keys *
Run Code Online (Sandbox Code Playgroud)


aur*_*iar 9

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

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

因此这会起作用:

echo -e 'AUTH aaaaaa\nkeys *' | redis-cli  
Run Code Online (Sandbox Code Playgroud)

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