废话不多说,咱们直接开始。
1、修改redis.conf配置文件
配置redis.conf中daemonize为yes,确保守护进程开启。
大概在148行,当然你也可以使用:/daemonize搜索。
2、查看原生的redis启动脚本
[root@kingdom ~]# find / -name redis_init_script
/general-redis/redis-4.0/utils/redis_init_script
提示:
redis启动脚本一般在redis根目录的utils
(2)查看脚本
vim /general-redis/redis-4.0/utils/redis_init_script
提示:
注意以下标红的这几点。
因为我们下面的操作都是为它服务的。
其实就是把这些变量的值修改为我们自己redis的实际路径和配置文件。
补充一点:
大家可以多looklook人家的脚本,可以学到不少东西。
3、复制脚本redis_init_script
将redis_init_script复制到/etc/init.d/redis
这里是为了将其配置为服务,方便管理。
[root@kingdom ~]# cp /general-redis/redis-4.0/utils/redis_init_script /etc/init.d/redis
[root@kingdom ~]# ll /etc/init.d/redis
-rwxr-xr-x 1 root root 1098 Sep 20 10:11 /etc/init.d/redis
4、 修改脚本redis
注意:
这里修改的是/etc/init.d/redis脚本,它将在修改完后完全为我们服务。
vim /etc/init.d/redis
(1) 、添加如下图两行内容
# chkconfig: 2345 66 77
# description: redis service shell
关于为什么这样做,请参考在下之前的文章:
浅谈Linux中通过chkconfig来设置服务开机自启动
(2) 、修改server和cli路径
查看自己redis的server和cli绝对路径
我的是这个/general-redis/redis4.0/bin
修改脚本如下:
(3) 、创建配置文件
原来的配置文件CONF="/etc/redis/${REDISPORT}.conf",这里的REDISPORT=6379。
即:CONF的位置在/etc/redis/6379.conf
这里我们可以和它保持一致,当然也可以自定位置。
我选择前者。
补充:要是选择后者需要指定CONF=你的配置文件实际位置
在/etc创建redis目录and将我们的配置文件cp到/etc/redis/下。
[root@kingdom bin]# mkdir /etc/redis
[root@kingdom bin]# cp /general-redis/redis4.0/etc/redis.conf /etc/redis/6379.conf
[root@kingdom bin]# ll /etc/redis/6379.conf
-rw-r--r-- 1 root root 58882 Sep 20 10:34 /etc/redis/6379.conf
别忘把redis脚本:wq保存退出。
最后补充一点:
如果你的redis设置了密码,stop时需要cli客户端指定密码登录来进行执行shutdown命令。
如下图:
$CLIEXEC -p $REDISPORT -a 123456 shutdown
5、 测试脚本
ps -ef | grep redis*
service redis start
service redis stop
6、 设置为开机启动
[root@kingdom ~]# chkconfig redis on
[root@kingdom ~]# chkconfig --list
测试完成,感谢大家支持。
7、补充
Redis脚本内容如下所示,或者大家可以留言。
#!/bin/sh
# chkconfig: 2345 66 77
# description: redis service shell
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/general-redis/redis4.0/bin/redis-server
CLIEXEC=/general-redis/redis4.0/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.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
;;
*)
echo "Please use start or stop as first argument"
;;
esac