我想停止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,它只是挂起。
答案 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>
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)
答案 12 :(得分:0)
答案 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