虽然使用命令行可以对redis进行各种操作,比如启动等,但是还是不太方便,本文介绍在Linux下安装Redis后,如何设置其开机自启动。
1. CentOS6.x&RedHat6.x 配置 Redis 开机自启动
1.1 创建 Redis 的管理脚本
首先,在系统的/etc/init.d/目录下创建 redis 文件:
vi /etc/init.d/redis
点击 i 键,在脚本中添加如下内容:
#!/bin/sh
# chkconfig: 2345 10 90
# description: Start and Stop redis
REDISPORT=7379
EXEC=/usr/redis/redis-5.0.4/src/redis-server
CLIEXEC=/usr/redis/redis-5.0.4/src/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/redis/redis-5.0.4/redis.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart)
"$0" stop
sleep 3
"$0" start
;;
*)
echo "Please use start or stop or restart as first argument"
;;
esac
注意,对于自定义编译安装的 Redis(帮助文档中提供的即是此种方式),需要根据安装路径修改脚本中这几项配置:
EDISPORT=7379 ====>默认为7379,若有调整请修改为实际的端口号
EXEC=/usr/redis/redis-5.0.4/src/redis-server ====>Redis 服务的启动路径
CLIEXEC=/usr/redis/redis-5.0.4/src/redis-cli ====>Redis 客户端的启动路径
CONF="/usr/redis/redis-5.0.4/redis.conf" ====>配置文件路径
保存脚本文件后设置文件的执行权限:
chmod a+x /etc/init.d/redis
然后,就可以通过该脚本对 Redis 服务进行管理了:
/etc/init.d/redis start
/etc/init.d/redis stop
1.2 使用 chkconfig 设置开机自启动
上面的步骤完成了用脚本管理 Redis 服务的功能,接下来我们就可以使用 chkconfig 来设置 Redis 开机启动了。
先将 Redis 服务加入 chkconfig 管理列表:
chkconfig --add /etc/init.d/redis
配置完以后,就可以使用以下命令设置开机自启动等操作了:
chkconfig redis on #设置开机自启动
chkconfig redis off #停止开机自启动
service redis start #启动redis服务
service redis stop #停止redis服务
service redis restart #重启redis服务
2. CentOS7.x&RedHat7.x 配置 redis 开机自启动
2.1 创建 Redis 的管理脚本
首先,在系统的/lib/systemd/system/目录下创建 redis.service 文件:
vi /lib/systemd/system/redis.service
点击 i 键,在脚本中添加如下内容:
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/redis_7379.pid
ExecStart=/usr/redis/redis-5.0.4/src/redis-server /usr/redis/redis-5.0.4/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
注意,对于自定义编译安装的 Redis(帮助文档中提供的即是此种方式),需要根据实际路径修改脚本中的 Redis启动路径“/usr/redis/sbin/redis”。
保存脚本文件后设置文件的执行权限:
chmod a+x /lib/systemd/system/redis.service
2.2 使用 systemctl 设置开机自启动
配置完脚本以后,就可以使用以下命令设置开机自启动等操作了:
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动
systemctl start redis.service #启动 Redis 服务
systemctl stop redis.service #停止服务
systemctl status redis.service #查看服务当前状态
systemctl list-units --type=service #查看所有已启动的服务