我显然有一个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。
当前回答
你可以试试下面的代码:
sudo kill -9 $(ps aux | grep 'redis' | awk '{print $2}')
其他回答
如果通过snap安装Redis:
sudo snap stop redis.server
一个更干净、更可靠的方法是进入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
如果你知道哪个端口(默认值: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有配置参数pidfile(例如/etc/redis.conf -检查Redis源代码),例如:
# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
#
# When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/redis.pid".
#
pidfile /var/run/redis.pid
如果它已经设置或可以设置,可以使用ps + grep来搜索进程id (pid),而不是像这样使用:
kill $(cat /var/run/redis.pid)
如果需要,一个可以使redis停止脚本像这样(改编默认redis 5.0初始化。D脚本在redis源代码):
PIDFILE=/var/run/redis.pid
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
kill $PID
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi