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

Opening port: bind: Address already in use

我不知道如何停止这个服务器,并启动一个新的。

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

我的操作系统是Ubuntu 10.04。


当前回答

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

/etc/init.d/redis-server restart

或者stop/start it:

/etc/init.d/redis-server stop
/etc/init.d/redis-server start

在Mac

redis-cli shutdown

其他回答

对于OSX,我创建了以下别名用于启动和停止redis(安装在Homebrew中):

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

这对当地的发展很有帮助!

Homebrew现在有了Homebrew服务,可以用来启动、停止和重新启动服务。homebrew-services

Brew服务在运行时自动安装。

brew services start|run redis 
brew services stop redis
brew services restart redis

如果您使用run,那么它将不会在登录(或引导)时启动。Start将启动redis服务,并在登录和启动时添加它。

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

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

选项1:关闭端口上的进程:

check     : sudo lsof -t -i:6379
kill      : sudo kill `sudo lsof -t -i:6379`

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

 ps auxx | grep redis-server

通过查找PID(进程ID) - Redis Sever来杀死特定的进程

kill -9 PID

现在启动你的redis服务器

redis-server /path/to/redis.conf 

如果你在安装redis时做了安装(例如ubuntu),那么你可以这样做:

redis-cli shutdown

正如@yojimbo87所指出的:)

另一种方式是:

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

适用于*NIX和OSX