44

我想停止 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 ,它只是挂起。

4

16 回答 16

39

我终于把它弄下来了。

获取进程的 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 后关闭窗口。现在运行正常。

于 2013-02-26T12:23:59.887 回答
21

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

启动 Redis 服务器 $ sudo service redis_6379 start

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

于 2014-09-15T12:56:29.763 回答
19

我无法再重现该问题,但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>
于 2017-07-12T23:32:28.047 回答
7

执行此操作的正常方法是连接到 redis-cli 之类的客户端并执行“关闭”命令。我发现了一些尝试关闭的问题,因为 redis-server 在退出之前没有正确的权限来编辑 db 转储文件 (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.
于 2013-09-25T08:21:14.723 回答
6

根据您的设置,以下任一解决方案都可能会失败redis-server只需使用新的 PID 重新启动:

1.

redis-cli -a password shutdown

或者,2。

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

但是下面的命令有效

/etc/init.d/redis-server stop

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

于 2020-05-20T07:09:42.203 回答
2

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

sudo service redis-server stop
于 2020-11-05T00:05:57.367 回答
1

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

于 2013-11-27T02:37:26.070 回答
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,在这种情况下关闭需要时间。相反,如果您想清除所有键,则有比关机更好的方法。同花顺

于 2017-04-24T01:05:43.853 回答
1

在 Windows 上这有效:

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

它将结束您的虚拟机。

于 2020-10-11T14:54:09.633 回答
0

净停止redis

应该做的伎俩

开始 :

净启动redis

看到这个https://stackoverflow.com/a/20153062

于 2014-03-03T15:34:31.690 回答
0

将服务器设置为需要身份验证时...

redis 启动和关闭脚本使用 redis-cli,这意味着没有 auth 就不会关闭,服务器将挂在循环中等待 redis 关闭,如果没有 auth,这将永远不会发生。

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

$CLIEXEC -p $REDISPORT shutdown

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

为了让您的 redis 服务可以轻松关闭。

于 2015-01-14T16:27:23.197 回答
0

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

ps aux |grep redis

这将列出 redis-server 的所有正在运行的进程。然后可以使用下面的命令杀死redis进程

sudo kill <pid for redis>

样品在这里

sudo kill 7229 //for the above sample.
于 2016-04-25T08:18:26.583 回答
0

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

lsof -i:<redis-port>

用于默认 redis 端口

lsof -i:6379

kill -9 <pid>
于 2016-05-13T06:15:43.427 回答
0

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

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

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

注意:我不知道它是否依赖于操作系统,但我使用的是 Manjaro Linux。我不确定它是否会在不同的操作系统上同样工作。

于 2020-10-25T13:18:30.587 回答
-1
start redis: $REDIS_HOME/src/redis-server
stop redis: $REDIS_HOME/src/redis-cli shutdown

$REDIS_HOME您安装/提取redis的位置。

于 2017-06-15T06:27:41.137 回答
-1

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

于 2019-04-09T11:53:06.753 回答