我怎样才能阻止redis-server?

我显然有一个redis-server实例运行,因为当我尝试通过inputredis-server启动一个新redis-server ,我迎接以下:

 Opening port: bind: Address already in use 

我无法弄清楚如何停止这个服务器,并开始一个新的。

当我在CLI中input时,是否有任何命令可以附加到redis-server

我的操作系统是Ubuntu 10.04。

或者连接到节点实例并使用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 

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

在redis-cli中,键入help @server ,你会在列表的底部看到这个:

SHUTDOWN – summary:将数据集同步保存到磁盘,然后closures服务器,因为:0.07

如果你有一个在terminal上运行的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... 

redis-cli shutdown是最有效的。 接受的答案不适用于我(OSX狮子)。 谢谢,@JesseBuesking。

对于osx,我创build了以下用于启动和停止redis的别名(用homebrew安装的redis):

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

这对我本地发展很有帮助。

在CLI中键入SHUTDOWN

要么

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

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

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

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

其中6379是默认端口。

选项2:findredis进程并杀死

 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

希望能帮助到你

另一种方式可能是:

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

适用于* NIX和OSX

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

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

上面的命令会给你pid。

杀死<pid> ;

这会closures你的服务器。

MacOSX – 它工作:)

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

 ps auxx | grep redis-server 

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

 kill -9 PID 

在我的情况是这样的:

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

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

 sudo updatedb locate redis 

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

以root用户的身份在terminal停止redis服务器types

 sudo service redis-server stop 

停止redis服务器后,将显示消息

 Stopping redis-server: redis-server. 

如果你想启动redis服务器types

 sudo service redis-server start 

如果你想重新启动服务器types

 sudo service redis-server restart 

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

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 

很好去。

我不知道专门为Redis,但一般的服务器:

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

您可以使用sudo netstat -nlpt (linux选项;其他netstat风格会有所不同)查找已经绑定到该端口的进程,并指示其停止。 我不会在运行的服务器上使用kill -9 ,除非真的没有其他信号或方法closures它。

在MacOSX上,

这是为我工作

 /etc/init.d/redis restart /etc/init.d/redis stop /etc/init.d/redis start 

下面的命令适用于Ubuntu服务器

 $ service /etc/init.d/redis_6379 stop $ service /etc/init.d/redis_6379 start $ service /etc/init.d/redis_6379 restart 

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