推荐使用docker安装redis,一步到位。
本文介绍我虚拟机安装redis后设置开机自启所遇到的问题。
1.在/etc/rc.d/init.d下添加redis脚本(系统启动会自动执行),并设置为自动启动,命令是:vim /etc/init.d/redis 。
chkconfig: 2345 20 80
description: Start and Stop redis
一开始我以为这只是注释语句,就没添加,结果导致执行chkconfig redis on 的时候一直失败。2345表示系统运行级别是2,3,4或者5时都启动此服务,20,是启动的优先级,80是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败。
# chkconfig: 2345 20 80
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
# 自己的redis-server路径(需要自己更改)
EXEC=/usr/local/redis/bin/redis-server
# 自己的redis-cli路径(需要自己更改)
REDIS_CLI=/usr/local/redis/bin/redis-cli
# 存的是redis进程的pid 即 Process ID!
PIDFILE=/var/run/redis.pid
# 自己的redis.conf 路径(需要自己更改)
CONF="/usr/local/redis/etc/redis.conf"
# AUTH="1234" 我没设置密码不用配这句
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
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
2.redis.conf里的bind一开始设置为了虚拟机的ip,也导致自启失败,改回了127.0.0.1后成功了,最后改为了0.0.0.0,方便redis管理器连接;daemonize 设置为yes
参考文章:
脚本内容参考地址