如何停止redis-server?

database ubuntu redis

331975 观看

22回复

6388 作者的声誉

我显然有一个redis-server实例正在运行,因为当我尝试通过输入启动一个新服务器时redis-server,我受到以下欢迎:

Opening port: bind: Address already in use

我无法弄清楚如何停止此服务器并启动一个新服务器。

redis-server当我在CLI中键入时,是否可以附加任何命令?

我的操作系统是Ubuntu 10.04。

作者: Qcom 的来源 发布者: 2011 年 8 月 2 日

回应 (22)


16

3434 作者的声誉

试试killall redis-server。您也可以使用ps aux查找服务器的名称和pid,然后使用它来终止它kill -9 here_pid_number

作者: ciembor 发布者: 02.08.2011 10:12

1

78994 作者的声誉

我不是专门为redis而知道的,但对于一般的服务器:

什么操作系统或分发?通常会有一个stop或/etc/init.d / ...命令,它将能够在pid文件中查找现有的pid。

你可以查看已经绑定到端口的进程sudo netstat -nlpt(linux选项;其他netstat风格会有所不同)并发出信号停止。除非没有其他信号或方法将其关闭,否则我不会kill -9在正在运行的服务器上使用。

作者: ysth 发布者: 02.08.2011 10:16

428

47598 作者的声誉

决定

连接到节点实例并使用shutdown命令,或者如果您使用的是ubuntu,则可以尝试通过init.d重新启动redis服务器:

/etc/init.d/redis-server restart

或停止/启动它:

/etc/init.d/redis-server stop
/etc/init.d/redis-server start

在Mac上

redis-cli shutdown
作者: yojimbo87 发布者: 02.08.2011 10:19

187

2665 作者的声誉

更干净,更可靠的方法是进入redis-cli然后键入 shutdown

在redis-cli中,键入help @server,您将在列表底部附近看到:

SHUTDOWN - 摘要:同步将数据集保存到磁盘,然后关闭服务器,因为:0.07

如果您在终端中运行了redis-server实例,您会看到:

User requested shutdown...
[6716] 02 Aug 15:48:44 * Saving the final RDB snapshot before exiting.
[6716] 02 Aug 15:48:44 * DB saved on disk
[6716] 02 Aug 15:48:44 # Redis is now ready to exit, bye bye...
作者: Kevin McTigue 发布者: 02.08.2011 07:51

23

231 作者的声誉

键入SHUTDOWN的CLI

要么

如果您不关心内存中的数据,也可以键入SHUTDOWN NOSAVE以强制关闭服务器。

作者: user1651082 发布者: 06.09.2012 06:52

130

13690 作者的声誉

redis-cli shutdown是最有效的。接受的答案对我不起作用(OSX Lion)。谢谢,@ JesseBuesking。

作者: SimplGy 发布者: 10.06.2013 10:03

25

10940 作者的声誉

对于OSX,我创建了以下用于启动和停止的别名redis(与Homebrew一起安装):

alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'

这对当地的发展非常有用!

Homebrew现在homebrew-services可用于启动,停止和重启服务。自制的服务

brew services 运行时自动安装。

brew services start|run redis 
brew services stop redis
brew services restart redis

如果您使用run,则它不会在登录时启动它(也不启动)。start将启动该redis服务并在登录和启动时添加它。

作者: Ray Hunter 发布者: 16.08.2013 04:59

5

251 作者的声誉

如果你知道它将在哪个端口上运行(默认情况下它是6379),你可以使用下面的命令来获取使用该端口的进程的pid,然后可以为同一个pid执行kill命令。

sudo lsof -i : <port> | awk '{print $2}'

上面的命令会给你pid。

<pid>;

这会关闭您的服务器。

作者: cptjack 发布者: 16.01.2014 06:20

10

498 作者的声誉

另一种方式可能是:

ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis

适用于* NIX和OSX

作者: smace 发布者: 18.08.2014 09:35

11

10340 作者的声誉

选项1:转到redis安装目录并导航到src,在我的情况下:

/opt/redis3/src/redis-cli -p 6379 shutdown

其中6379是默认端口。

选项2:找到redis进程并终止

ps aux | grep redis-server

t6b3fg   22292  0.0  0.0 106360  1588 pts/0    S+   01:19   0:00 /bin/sh /sbin/service redis start
t6b3fg   22299  0.0  0.0  11340  1200 pts/0    S+   01:19   0:00 /bin/sh /etc/init.d/redis start

然后发起杀戮:

kill -9 22292

kill -9 22299

我正在使用Centos 6.7,x86_64

希望能帮助到你

作者: App Work 发布者: 15.09.2015 01:24

0

2609 作者的声誉

在MacOSX上,

这对我有用

/etc/init.d/redis restart

/etc/init.d/redis stop

/etc/init.d/redis start
作者: tsuz 发布者: 09.12.2015 02:43

3

3630 作者的声誉

在我的情况下它是:

/etc/init.d/redismaster stop
/etc/init.d/redismaster start

要找出您的服务名称,您可以运行:

sudo updatedb
locate redis

它会显示系统中的每个Redis文件。

作者: joan16v 发布者: 03.02.2016 08:42

6

61 作者的声誉

MacOSX - 它工作了:)

步骤1:找到以前运行的Redis服务器

ps auxx | grep redis-server

步骤2:通过查找PID(进程ID) - Redis Sever来终止特定进程

kill -9 PID
作者: Karthekeyan Devanand 发布者: 22.08.2016 06:11

1

7674 作者的声誉

以下命令适用于Ubuntu Server

$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
作者: efkan 发布者: 01.10.2016 12:14

7

1371 作者的声誉

使用root用户在终端中停止redis服务器类型

sudo service redis-server stop

停止redis-server后将显示该消息

Stopping redis-server: redis-server.

如果要启动redis-server类型

sudo service redis-server start

如果要重新启动服务器类型

sudo service redis-server restart
作者: denny 发布者: 01.10.2016 01:04

4

7002 作者的声誉

systemd,ubuntu 16.04:

$ sudo systemctl is-active redis-server
active

$ sudo systemctl is-enabled redis-server
enabled

$ sudo systemctl disable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redis-server
Removed /etc/systemd/system/redis.service.

$ sudo systemctl stop redis-server
作者: Adobe 发布者: 17.11.2016 03:32

4

796 作者的声誉

通常这个问题出现在我关闭我的计算机(或离开运行)不规则的方式..我相信端口卡住打开,而进程停止但继续绑定到以前的端口。

修复的9/10倍可以是:

$ ps aux | grep redis

-> MyUser 2976  0.0  0.0  2459704    320   ??  S    Wed01PM   0:29.94 redis-server *:6379

$ kill 2976

$ redis-server

很高兴去。

作者: Christopher Knight 发布者: 12.01.2017 06:56

2

378 作者的声誉

另一种方式可能是:

brew services stop redis
作者: Ihor Pavlyk 发布者: 25.03.2018 08:47

0

1 作者的声誉

检查redis命令是否不适合你的一件事是你的redis-server.pid是否真的被创建了。您可以指定此文件所在的位置

/etc/systemd/system/redis.service 

它应该有一个看起来像这样的部分:

[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always

检查PIDFile目录的位置和权限(在我的例子中,'/ run / redis')。我试图重新启动以部署身份登录的服务,但目录权限列为

drwxrwsr-x  2 redis    redis      40 Jul 20 17:37 redis

如果您需要更新linux权限,请查看此信息。但问题是我正在执行重启作为我的部署用户,上面的权限是rx,不允许我的用户写入PIDFile目录。

一旦我意识到这一点,我使用root登录,重新启动redis(service redis restart)上的restart命令,一切正常。这是一个令人头疼的问题,但希望这能节省一点时间。

作者: Lauren Marie Lahm 发布者: 24.07.2018 04:11

2

598 作者的声誉

以下为MAC工作

 ps aux | grep 'redis-server' | awk '{print $2}' | xargs sudo kill -9
作者: Mahesh Hegde 发布者: 10.10.2018 10:16

0

1615 作者的声誉

如果您在docker容器中运行redis,则目前的答案都不会有帮助。你必须停止redis容器。否则,redis进程将继续重生。

$ docker ps
CONTAINER ID        IMAGE                    PORTS                             
e1c008ab04a2        bitnami/redis:4.0.8-r0   0.0.0.0:6379->6379/tcp

$ docker stop e1c008ab04a2
e1c008ab04a2
作者: Wladek Surala 发布者: 19.10.2018 11:05

0

115 作者的声誉

如果您知道redis服务器正在运行的端口(默认值:6379),您可以使用选项1,或者您可以检查redis进程,并且可以使用选项2进行终止

选项1:
在端口上终止进程:

check     : sudo lsof -t -i:6379
kill      : sudo kill `sudo lsof -t -i:6379`

选项2:
找到以前运行的Redis服务器:

 ps auxx | grep redis-server

通过查找PID(进程ID) - Redis Sever来终止特定进程

kill -9 PID

现在启动redis服务器

redis-server /path/to/redis.conf 
作者: AATHITH RAJENDRAN 发布者: 23.05.2019 09:57
32x32