Redis将不会closures

大多数情况下,当我重新启动Ubunutu服务器时,我一遍又一遍地得到“等待Redisclosures…”,直到我强制重新启动后才停止。 什么可能导致这个?

我有http://godrb.com/监控resque保持运行,所以它可能与此有关。

    你有Redis监听localhost127.0.0.1以外的其他接口吗? 如果是这样,那么停止命令永远不会被发送到正确的接口,因为正式的Redis init模板未能包含主机地址 。

    在我使用过的/etc/init.d/redis文件中,我必须定义REDISHOST=10.150.0.18 ,然后在第30行(查找“shutdown”)添加该主机参数:

     $CLIEXEC -h $REDISHOST -p $REDISPORT shutdown 

    如果你和我一样,你需要在你的redis.conf中input一个密码(requirepass)。 redis-cli命令现在不会回应。

    在/etc/init.d/redis文件的前几行查找CLIEXEC并更改默认值

     CLIEXEC=/usr/local/bin/redis-cli 

     CLIEXEC="/usr/local/bin/redis-cli -a <password>" 

    请注意报价。

    当我这样做时,我不必包含-h $ REDISHOST参数。

    请参阅此处以了解此主意的来源: https : //groups.google.com/forum/#!topic/redis- db/ ITtbA1S-GGg

    这个列表中的对话可以解决你的问题:

    修改你的init脚本,在redis-cli调用中使用'-a'(auth)。

    CLIEXEC =“/ usr / local / bin / redis-cli -a密码”

    换句话说,问题是您必须inputRedis密码来停止服务。 使用-a password修改/etc/init.d/redis_port脚本(或者其他可能的init脚本)将解决这个问题。

    你可以杀死redis进程:

     $ ps -ef|grep "redis" # kill $(cat /var/run/redis.pid)