如何为 Redis 设置密码?

2022-08-30 07:03:58

我正在本地计算机上使用redis,因此我实际上不需要设置密码即可使用我的php客户端连接到服务器(我使用predis作为客户端)。但是,我要将应用移动到实时服务器,因此我想设置密码以连接到我的 redis 服务器。

我有几个问题:

  • 我在互联网上检查了如何设置密码,看起来我需要在redis.conf中添加密码。我找不到我应该确切地添加到配置文件中以设置密码的内容。

  • 同样在predis中,我应该如何添加密码。我正在使用以下参数数组连接到 redis 服务器

    $my_server = array('host' => '127.0.0.1','port' => 6379,'database' => 1);

我应该以这种方式添加密码吗?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
  • 最后一个问题,我正在尝试在实时服务器上停止我的 redis 服务器。每次我输入以下命令,我不断收到相同的错误消息

    redis-server stop

    [23925] 9月23日 20:23:03 # 致命错误,无法打开配置文件“stop”

    通常在我的本地机器上我输入

    /etc/init.d/redis-server stop

停止 redis 服务器,但它在我的 live 服务器上不起作用,因为在我的 /etc/init.d 中没有名为 redis-server 的进程


答案 1

要设置密码,请编辑您的 redis.conf 文件,找到此行

# requirepass foobared

然后取消注释并将其更改为密码。确保你选择一些很长的东西,32个字符左右可能会很好,外部用户很容易每秒猜测超过150k个密码,正如配置文件中的注释中提到的那样。

要使用 predis 使用新密码进行身份验证,您显示的语法是正确的。只需添加密码作为连接参数之一即可。

要关闭重新映像...签入您的配置文件以进行设置,它可能是pidfile

pidfile /var/run/redis.pid

从命令行中,运行:

cat /var/run/redis.pid

这将为您提供正在运行的服务器的进程ID,然后只需使用该pid杀死该进程:

kill 3832

更新

我还想补充一点,你也可以让你习惯于在你的实时服务器上工作。/etc/init.d/ 中的所有文件都只是 shell 脚本,将 redis-server 脚本从本地服务器上取下,然后将其复制到同一位置的实时服务器,然后看看它对 vi 或你喜欢使用的任何东西有什么作用,你可能需要修改一些路径等等,但它应该非常简单。/etc/init.d/redis-server stop


答案 2

您也可以在客户端上使用以下命令

cmd :: config set requirepass p@ss$12E45

上面的命令将设置为服务器密码。p@ss$12E45redis


推荐