我显然有一个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。
当前回答
在CLI中输入SHUTDOWN
or
如果你不关心内存中的数据,你也可以输入SHUTDOWN NOSAVE来强制关闭服务器。
其他回答
我的情况是:
/etc/init.d/redismaster stop
/etc/init.d/redismaster start
要找出你的服务名称,你可以运行:
sudo updatedb
locate redis
它会显示你系统中的每一个Redis文件。
如果您知道它将在哪个端口上运行(默认情况下是6379),您可以使用以下命令获取使用该端口的进程的pid,然后可以对相同的pid执行kill命令。
sudo lsof -i : <port> | awk '{print $2}'
上面的命令将为您提供pid。
杀死pid > <;
这将关闭您的服务器。
要优雅地使用密码关闭特定实例,而不诉诸于暴力杀死命令,请使用:
Redis-cli -p <port> -a <pass> shutdown
root@machine:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 105 0.1 0.0 60552 10772 ? Ssl 23:27 0:02 redis-server 127.0.0.1:10002
root 111 0.1 0.0 60552 10900 ? Ssl 23:28 0:02 redis-server 127.0.0.1:10003
root 117 0.1 0.0 60552 10872 ? Ssl 23:28 0:02 redis-server 127.0.0.1:10004
root@machine:~# redis-cli -p 10002 -a mypassword shutdown
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
root@machine:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 111 0.1 0.0 60552 10900 ? Ssl 23:28 0:02 redis-server 127.0.0.1:10003
root 117 0.1 0.0 60552 10872 ? Ssl 23:28 0:02 redis-server 127.0.0.1:10004
root@machine:~#
如果有大量的实例,就需要编写一个批处理脚本来循环遍历所有实例,以便主关机。
在CLI中输入SHUTDOWN
or
如果你不关心内存中的数据,你也可以输入SHUTDOWN NOSAVE来强制关闭服务器。
试试杀死所有redis-server。您还可以使用ps aux来查找服务器的名称和pid,然后使用kill -9 here_pid_number终止它。