如何在Linux中配置Redis服务并设置为开机自启
废话不多说,咱们直接开始。
1、修改redis.conf配置文件
配置redis.conf中daemonize为yes,确保守护进程开启。
大概在148行,当然你也可以使用:/daemonize搜索。
2、查看原生的redis启动脚本
[root@kingdom~]#find/-nameredis_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-x1rootroot1098Sep2010:11/etc/init.d/redis
4、修改脚本redis
注意:
这里修改的是/etc/init.d/redis脚本,它将在修改完后完全为我们服务。
vim/etc/init.d/redis
(1)、添加如下图两行内容
#chkconfig:23456677
#description:redisserviceshell
关于为什么这样做,请参考在下之前的文章:
浅谈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@kingdombin]#mkdir/etc/redis
[root@kingdombin]#cp/general-redis/redis4.0/etc/redis.conf/etc/redis/6379.conf
[root@kingdombin]#ll/etc/redis/6379.conf
-rw-r--r--1rootroot58882Sep2010:34/etc/redis/6379.conf
别忘把redis脚本:wq保存退出。
最后补充一点:
如果你的redis设置了密码,stop时需要cli客户端指定密码登录来进行执行shutdown命令。
如下图:
$CLIEXEC-p$REDISPORT-a123456shutdown
5、测试脚本
ps-ef|grepredis*
serviceredisstart
serviceredisstop
6、设置为开机启动
[root@kingdom~]#chkconfigredison
[root@kingdom~]#chkconfig--list
测试完成,感谢大家支持。
7、补充
Redis脚本内容如下所示,或者大家可以留言。
#!/bin/sh
#chkconfig:23456677
#description:redisserviceshell
#SimpleRedisinit.dscriptconceivedtoworkonLinuxsystems
#asitdoesuseofthe/procfilesystem.
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"$PIDFILEexists,processisalreadyrunningorcrashed"
else
echo"StartingRedisserver..."
$EXEC$CONF
fi
;;
stop)
if[!-f$PIDFILE]
then
echo"$PIDFILEdoesnotexist,processisnotrunning"
else
PID=$(cat$PIDFILE)
echo"Stopping..."
$CLIEXEC-p$REDISPORTshutdown
while[-x/proc/${PID}]
do
echo"WaitingforRedistoshutdown..."
sleep1
done
echo"Redisstopped"
fi
;;
*)
echo"Pleaseusestartorstopasfirstargument"
;;
esac