我显然有一个redis-server
实例中运行,因为当我尝试通过输入redis-server
启动一个新的服务器,我与打招呼以下:如何停止redis服务器?
Opening port: bind: Address already in use
我无法弄清楚如何停止该服务器并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到redis-server
?
我的操作系统是Ubuntu 10.04。
我显然有一个redis-server
实例中运行,因为当我尝试通过输入redis-server
启动一个新的服务器,我与打招呼以下:如何停止redis服务器?
Opening port: bind: Address already in use
我无法弄清楚如何停止该服务器并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到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
尝试killall redis-server
。您也可以使用ps aux
来查找您的服务器的名称和pid,然后用kill -9 here_pid_number
杀死它。
这太好了,适用于mac/unix。 (Mac测试过,unix认可) – ThomasReggi
杀死数据库服务器的坏主意。总是喜欢正确的关机,或者至少杀死-15而不是kill -9。 –
@ZsoltSzilagy你应该提供一个链接或有点解释*为什么*这是一个坏主意。就像redis延迟写入一样,这样内存中仍然存在未被满足的数据。 –
我不知道具体的Redis的,但对于一般的服务器:
什么操作系统或分配?通常会有一个stop或/etc/init.d/...命令,能够查找pid文件中的现有pid。
你可以查看哪个进程已经绑定到端口sudo netstat -nlpt
(linux选项;其他netstat的风格会有所不同)并指示它停止。我会而不是在运行的服务器上使用kill -9
,除非确实没有其他信号或方法关闭它。
一个更清洁,更可靠的方法是进入Redis的-CLI和TH连接类型shutdown
在Redis的-CLI中,键入help @server
,你会看到这个靠近列表的底部:
SHUTDOWN - 总结:同步方式的数据集保存到磁盘,然后 关闭,因为服务器:0.07
如果你有在终端运行Redis的服务器实例,你会看到这一点:
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。只需通过'redis-cli shutdown'从命令行发送它。 (你可以发送这样的命令,例如'redis-cli set cat dog; redis-cli get cat') – JesseBuesking
@jessebuesking评论唯一的警告是如果你设置了密码保护,'redis-cli set猫狗; redis-cli get cat'变为'redis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat',这可能会在几个命令后变得烦人。 – glarrain
@glarrain你可以做的一件事是避免冗余,为你当前的bash会话设置一个别名,例如'alias redis-cli =“redis-cli -a mypassword”'。通过这种方式,您可以在原始评论中拨打电话,而无需在每次使用时重新提供密码。 – JesseBuesking
在CLI类型SHUTDOWN
或
如果你不关心你的内存数据,你也可以输入SHUTDOWN NOSAVE
强制关闭服务器。
redis-cli shutdown
是最有效的。接受的答案不适用于我(OSX Lion)。谢谢,@JesseBuesking。
是的,被接受的答案只适用于Redis以所描述的方式设置为服务的Linux系统 – glarrain
这也适用于Windows。 'redis-cli.exe shutdown' –
的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'
这为我当地发展伟大的工作。
如果你知道在哪个端口上,将运行(默认情况下这将是6379),您可以使用下面的命令来获得使用该端口的进程的PID,然后可以为同一个PID执行kill命令。
sudo lsof -i : <port> | awk '{print $2}'
上面的命令会给你pid。
kill <pid>
;
这将关闭服务器。
另一种方式可以是:
ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis
文选* NIX & OSX
这应该是被接受的答案 – JoenasE
选项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的
希望它有助于
在MacOSX上,
这是对我工作
/etc/init.d/redis restart
/etc/init.d/redis stop
/etc/init.d/redis start
在我的情况是:
/etc/init.d/redismaster stop
/etc/init.d/redismaster start
要搞清楚什么是您的服务名称,你可以运行:
sudo updatedb
locate redis
它会告诉你在你的系统中的每个Redis的文件。
MacOSX的 - 它的工作:)
步骤1:找到先前运行的Redis服务器
ps auxx | grep redis-server
步骤2:杀死通过找到PID(进程ID)的具体过程 - 的Redis Sever的
kill -9 PID
以下命令适用于我Ubuntu服务器
$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
停止redis的服务器类型在终端与根用户
sudo service redis-server stop
的讯息会显示停止redis的服务器
Stopping redis-server: redis-server.
后如果要启动redis的 - 服务器类型
sudo service redis-server start
如果要重新启动服务器类型
sudo service redis-server 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
通常这个问题后,我关闭了我的电脑(或离开运行)一个不规则的方式出现。我相信口卡住开放,而过程停止但继续绑定到以前的端口。
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
好到哪里去。
您使用哪种操作系统和发行版? – yojimbo87
Ubuntu版本10.04。 – Qcom
女士们,先生们,如果您没有通过软件包管理器安装redis,并且您已经从源代码安装了redis,那么它可能无法在Ubuntu上使用systemv或upstart或systemd。因此,所选答案在默认情况下不起作用。第二个答案不明显是正确的,似乎更可靠。 – Donato