我在我的本地机器上使用 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-server。每次输入以下命令时,我都会收到相同的错误消息
redis-server stop
[23925] 23 Sep 20:23:03 # Fatal error, can't open config file 'stop'
通常在我的本地机器上输入
/etc/init.d/redis-server stop
要停止 redis 服务器,但它不能在我的实时服务器上运行,因为在我的/etc/init.d 中没有名为 redis-server 的进程
最佳答案
要设置密码,编辑你的redis.conf文件,找到这一行
# requirepass foobared
然后取消注释并将 foobared 更改为您的密码。确保您选择了相当长的内容,大约 32 个字符可能会很好,正如配置文件中的注释所述,外部用户很容易每秒猜出超过 150k 个密码。
要使用 predis 使用新密码进行身份验证,您显示的语法是正确的。只需添加密码作为连接参数之一。
要关闭 redis...检查您的配置文件中的 pidfile
设置,它可能是
pidfile /var/run/redis.pid
从命令行运行:
cat /var/run/redis.pid
这将为您提供正在运行的服务器的进程 ID,然后使用该 pid 终止该进程:
kill 3832
更新
我还想补充一点,你也可以让 /etc/init.d/redis-server 停止
你习惯在你的实时服务器上工作。/etc/init.d/中的所有这些文件都只是 shell 脚本,将 redis-server 脚本从本地服务器上取下,然后将其复制到同一位置的实时服务器,然后看看它用 vi 或其他东西做了什么你喜欢用,你可能需要修改一些路径之类的,但应该很简单。
关于php - 如何为Redis设置密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7537905/