如何停止redis-server?

Qco*_*com 295 database ubuntu redis

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

Opening port: bind: Address already in use
Run Code Online (Sandbox Code Playgroud)

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

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

我的操作系统是Ubuntu 10.04.

yoj*_*o87 481

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

/etc/init.d/redis-server restart
Run Code Online (Sandbox Code Playgroud)

或停止/启动它:

/etc/init.d/redis-server stop
/etc/init.d/redis-server start
Run Code Online (Sandbox Code Playgroud)

在Mac上

redis-cli shutdown
Run Code Online (Sandbox Code Playgroud)

  • 在mac`redis-cli shutdown`上工作 (54认同)
  • 如果以这种方式设置redis,则只能这样做.Kevin McTigue的答案适用于最小化设置. (5认同)
  • 在现代的Ubuntu上,我使用`apt-get install redis-server`安装它之后使用`service redis-server stop`和`service redis-server start`. (4认同)
  • 仅当您将 redis-server 作为服务运行时,这才有效。如果它作为独立的可执行文件运行,那么您将需要显式停止该进程。以下是我用来停止该进程的步骤: pkill redis-server on a linux box (2认同)

Kev*_*gue 193

更干净,更可靠的方法是进入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...
Run Code Online (Sandbox Code Playgroud)

  • 或者甚至不开始redis-cli.只需通过`redis-cli shutdown`从命令行发送它.(你可以发送任何这样的命令,例如`redis-cli set cat dog; redis-cli get cat`) (69认同)
  • 对@jessebuesking评论的唯一警告是,如果你设置了密码保护,`redis-cli设置猫狗; redis-cli将cat改为`redis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat`,经过一些命令后可能很烦人. (6认同)

Sim*_*lGy 136

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

  • 这也适用于 Windows。`redis-cli.exe 关闭` (3认同)
  • 我在 Ubuntu 上,“redis-cli shutdown nosave”就成功了。 (2认同)

Ray*_*ter 35

对于osx,我创建了以下别名来启动和停止redis(使用自制软件安装redis):

alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'
Run Code Online (Sandbox Code Playgroud)

这对我来说非常适合当地的发展.

  • 如果您使用自制软件安装redis,那么`brew services stop redis`也可以!:) (3认同)

小智 24

键入SHUTDOWN的CLI

要么

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


Bed*_*ang 20

我建议禁用 Redis 服务器,它可以防止计算机重新启动时自动启动,并且对于使用 docker 之类的工具等非常有用。

步骤1:停止redis服务器

sudo service redis-server stop
Run Code Online (Sandbox Code Playgroud)

第 2 步:禁用 redis-server

sudo systemctl disable redis-server
Run Code Online (Sandbox Code Playgroud)

如果你需要redis,你可以这样启动:

sudo service redis-server start
Run Code Online (Sandbox Code Playgroud)


cie*_*bor 15

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

  • 硬盘杀死数据库服务器的坏主意.总是喜欢正确的关机,或者至少要杀掉-15而不是kill -9. (21认同)
  • @ notbad.jpeg,当然,您也可以将电脑放在地板上.如果表足够高,这也应该停止服务器.我是否需要一个链接或一些解释为什么这是一个坏主意? (5认同)
  • @ZsoltSzilagy,您应该提供链接或某种解释*为什么*这是一个坏主意。就像redis延迟写入的方式一样,因此内存中仍将有未提交的数据。 (2认同)
  • 使用这种方法,您无需考虑redis数据库状态。您正在使用操作系统功能来关闭应用程序,而不是使用应用程序本身或守护程序,后者也可能也在使用应用程序功能。此解决方案就像拔下电缆以关闭电视。 (2认同)

App*_*ork 13

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

/opt/redis3/src/redis-cli -p 6379 shutdown
Run Code Online (Sandbox Code Playgroud)

其中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
Run Code Online (Sandbox Code Playgroud)

然后发起杀戮:

kill -9 22292

kill -9 22299
Run Code Online (Sandbox Code Playgroud)

我正在使用Centos 6.7,x86_64

希望能帮助到你


sma*_*ace 10

另一种方式可能是:

ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis
Run Code Online (Sandbox Code Playgroud)

适用于*NIX和OSX


den*_*nny 9

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

sudo service redis-server stop
Run Code Online (Sandbox Code Playgroud)

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

Stopping redis-server: redis-server.
Run Code Online (Sandbox Code Playgroud)

如果要启动redis-server类型

sudo service redis-server start
Run Code Online (Sandbox Code Playgroud)

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

sudo service redis-server restart
Run Code Online (Sandbox Code Playgroud)


Áko*_*ács 7

如果Redis是通过snap安装的:

sudo snap stop redis.server
Run Code Online (Sandbox Code Playgroud)


小智 6

MacOSX - 它工作了:)

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

ps auxx | grep redis-server
Run Code Online (Sandbox Code Playgroud)

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

kill -9 PID
Run Code Online (Sandbox Code Playgroud)


Ado*_*obe 6

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
Run Code Online (Sandbox Code Playgroud)


AAT*_*RAN 6

如果你知道你的redis服务器正在哪个端口(默认:6379)上运行,你可以使用选项1,或者你可以检查你的redis进程,你可以使用选项2杀死

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

check     : sudo lsof -t -i:6379
kill      : sudo kill `sudo lsof -t -i:6379`
Run Code Online (Sandbox Code Playgroud)

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

 ps auxx | grep redis-server
Run Code Online (Sandbox Code Playgroud)

通过查找PID(进程ID)来杀死特定进程 - Redis服务器

kill -9 PID
Run Code Online (Sandbox Code Playgroud)

现在启动你的redis服务器

redis-server /path/to/redis.conf 
Run Code Online (Sandbox Code Playgroud)


cpt*_*ack 5

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

sudo lsof -i : <port> | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

上面的命令会给你pid.

<pid>;

这会关闭您的服务器.


Chr*_*ght 5

通常,在我以不规则的方式关闭计算机(或使其处于运行状态)之后,会出现此问题。我相信端口会卡住,而进程会停止,但会继续绑定到先前的端口。

修复的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
Run Code Online (Sandbox Code Playgroud)

好去。


Iho*_*lyk 5

另一种方法可能是:

brew services stop redis
Run Code Online (Sandbox Code Playgroud)


Wla*_*ala 5

如果您在 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
Run Code Online (Sandbox Code Playgroud)


gia*_*huy 5

如果您在安装redis 时确实进行了安装(例如 ubuntu),那么您可以执行以下操作:

redis-cli shutdown
Run Code Online (Sandbox Code Playgroud)

正如@yojimbo87所指出的:)