我显然有一个redis-server实例正在运行,因为当我试图通过输入redis-server启动一个新服务器时,我受到以下欢迎:
Opening port: bind: Address already in use
我不知道如何停止这个服务器,并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到redis-server ?
我的操作系统是Ubuntu 10.04。
我显然有一个redis-server实例正在运行,因为当我试图通过输入redis-server启动一个新服务器时,我受到以下欢迎:
Opening port: bind: Address already in use
我不知道如何停止这个服务器,并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到redis-server ?
我的操作系统是Ubuntu 10.04。
当前回答
如果你在安装redis时做了安装(例如ubuntu),那么你可以这样做:
redis-cli shutdown
正如@yojimbo87所指出的:)
其他回答
我不知道redis的具体情况,但对于一般的服务器来说:
什么操作系统或发行版?通常会有一个stop或/etc/init.d/…命令,该命令能够在pid文件中查找现有的pid。
您可以使用sudo netstat -nlpt (linux options;其他netstat口味会有所不同),并发出停止的信号。我不会在运行中的服务器上使用kill -9,除非真的没有其他信号或方法来关闭它。
一个更干净、更可靠的方法是进入redis-cli,然后输入shutdown
在redis-cli中,输入help @server,你会在列表底部看到:
SHUTDOWN - summary:同步保存数据集到磁盘,然后 从: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...
我建议禁用Redis-server,它可以防止计算机重启时自动启动,对使用docker之类的工具非常有用。
步骤1:停止redis-server
sudo service redis-server stop
步骤2:关闭redis-server
sudo systemctl disable redis-server
如果你需要redis,你可以这样启动:
sudo service redis-server start
如果你在安装redis时做了安装(例如ubuntu),那么你可以这样做:
redis-cli shutdown
正如@yojimbo87所指出的:)
通常这个问题出现后,我关闭我的电脑(或离开运行)不规则的方式。我认为端口被卡住打开,而进程停止,但继续绑定到前一个端口。
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
准备好了。