停止redis服务器。关闭和停止都不起作用

时间:2013-02-26 11:32:51

标签: redis

我想停止redis服务器,它只是继续前进和继续。我使用的是redis-2.6.7

检查它是否正在运行:

redis-server

它说“...绑定:地址已在使用中”,因此它已经在运行。

我试过了

redis-cli
redis 127.0.0.1:6379> shutdown

它只是挂起而没有任何反应。我突然检查,是的,它仍在运行。

我试过了

redis-server stop

我得到“无法打开配置文件'停止'”

我试过了:

killall redis-server

仍在运行。

我想要阻止它的原因是当我尝试通过Python设置或获取值时,它就会挂起。所以我想我会重新启动它。

编辑:

redis-cli似乎没有任何命令。我也试过INFO,它只是挂起。

17 个答案:

答案 0 :(得分:31)

我终于把它搞定了。

获取流程的PID(这在Webfaction中有效):

ps -u my_account -o pid,rss,command | grep redis

然后

> kill -9 the_pid

我能够重现这个问题:

Start redis-server
Then break it using Pause/Break key

现在它挂起并且不会正常关闭。尝试设置/获取密钥的Python程序也会挂起。要避免这种情况:只需在启动redis-server后关闭窗口。它现在正常运行。

答案 1 :(得分:17)

关闭Redis服务器 $ redis-cli -a password -p 6379 shutdown

启动Redis服务器 $ sudo service redis_6379 start

适用于Ubuntu Server 14.04 x86 Redis v2.8.15。

答案 2 :(得分:5)

正常的做法是连接到像redis-cli这样的客户端并执行“shutdown”命令。我发现一些问题试图关闭,因为redis-server没有正确的权限来在退出之前编辑数据库转储文件(RDB)。然后redis仍然启动,你必须用kill -9 pid杀死进程。但是你可能知道这不是一个redis问题。

此问题的示例:

# User requested shutdown...
[16560] 10 Sep 11:21:17.672 * Saving the final RDB snapshot before exiting.
[16560] 10 Sep 11:21:17.672 # Failed opening .rdb for saving: Permission denied
[16560] 10 Sep 11:21:17.672 # Error trying to save the DB, can't exit.

答案 3 :(得分:5)

我再也无法重现这个问题,但shutdown NOSAVE帮助了我,当我玩redis时无法让它关闭:

redis-cli
127.0.0.1:6379> shutdown
(error) ERR Errors trying to SHUTDOWN. Check logs.
127.0.0.1:6379> shutdown NOSAVE
not connected>

答案 4 :(得分:2)

redis-cli -a password shutdown

ps aux|grep redis
kill -9 <redis pid>

上述解决方案不起作用。 Redis服务器将以新的pid重新启动。 但是下面的命令有效。

/etc/init.d/redis-server stop

我的服务器是Ubuntu 18.04.2,Redis版本是v4.0.9

答案 5 :(得分:1)

对于有些人来说,这可能是一个非常重要的注意事项。如果您的redis似乎没有响应关机。检查日志。

他们可能会这样说:

Apr 24 00:48:54 redis[828]: Received SIGTERM, scheduling shutdown...
Apr 24 00:48:54 redis[828]: User requested shutdown, saving DB...
Apr 24 00:55:37 redis[828]: DB saved on disk

也许您的数据库是多GB或几十GB,在这种情况下,关闭需要一些时间。如果你想要清除所有键,那么有一种更好的方法来做到关闭。 FLUSHALL

答案 6 :(得分:1)

我认为shutdown命令可以关闭redis服务器。 也许很奇怪,在输入了shutdown命令之后,redis-cli没有退出。同时,服务器已经关闭。

答案 7 :(得分:0)

使用以下命令终止正在运行的redis-server进程。

ps aux |grep redis

这将列出redis-server的所有正在运行的进程。 然后,您可以使用以下命令终止redis进程

sudo kill <pid for redis>

sample here

sudo kill 7229 //for the above sample.

答案 8 :(得分:0)

最好的方法是检查redis打开端口的pid:

lsof -i:<redis-port>

表示默认的redis端口

lsof -i:6379

kill -9 <pid>

答案 9 :(得分:0)

将服务器设置为要求验证时...

redis启动和关闭脚本使用redis-cli,这意味着没有auth就不会发生关闭,服务器将挂起一个等待redis关闭的循环,这在没有auth的情况下不会发生。

所以在关机脚本中你必须改变

$CLIEXEC -p $REDISPORT shutdown

$CLIEXEC -a 'authpassword' -p $REDISPORT shutdown

为了让你的redis服务能够毫不费力地关闭。

答案 10 :(得分:0)

start redis: $REDIS_HOME/src/redis-server
stop redis: $REDIS_HOME/src/redis-cli shutdown

$REDIS_HOME您安装/提取了redis的地方。

答案 11 :(得分:0)

net stop redis

应该做的伎俩

开始:

net start redis

请参阅此https://stackoverflow.com/a/20153062

答案 12 :(得分:0)

在redis-cli命令上“关闭SAVE”或“关闭NOSAVE”将起作用。

答案 13 :(得分:0)

您可以简单地:

redis-cli shutdown

答案 14 :(得分:0)

在Windows上有效:

打开终端(PowerShell / CMD),键入: wsl --shutdown

它将结束您的虚拟机。

答案 15 :(得分:0)

我遇到了Could not connect to Redis at 127.0.0.1:6379: Connection refused错误,建议的解决方案对我没有任何帮助。

我的解决方案:在终端中运行sudo redis-server /etc/redis.conf命令。

运行命令后,我可以再次使用Redis,而不会出现该错误。

注意:我不知道它是否与操作系统有关,但我使用的是Manjaro Linux。我不确定它是否可以在其他操作系统上使用。

答案 16 :(得分:0)

如果您使用 Ubuntu 或其他 Linux发行版,请尝试停止Redis服务器:

sudo service redis-server stop