我怎样才能阻止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