如何在linux中配置redis服務(wù)并設(shè)置為開機(jī)自啟
廢話不多說,咱們直接開始。
1、修改redis.conf配置文件
配置redis.conf中daemonize為yes,確保守護(hù)進(jìn)程開啟。
大概在148行,當(dāng)然你也可以使用:/daemonize搜索。
2、查看原生的redis啟動(dòng)腳本
[root@kingdom ~]# find / -name redis_init_script
/general-redis/redis-4.0/utils/redis_init_script
提示:
redis啟動(dòng)腳本一般在redis根目錄的utils
(2)查看腳本
vim /general-redis/redis-4.0/utils/redis_init_script
提示:
注意以下標(biāo)紅的這幾點(diǎn)。
因?yàn)槲覀兿旅娴牟僮鞫际菫樗?wù)的。
其實(shí)就是把這些變量的值修改為我們自己redis的實(shí)際路徑和配置文件。
補(bǔ)充一點(diǎn):
大家可以多l(xiāng)ooklook人家的腳本,可以學(xué)到不少東西。
3、復(fù)制腳本redis_init_script
將redis_init_script復(fù)制到/etc/init.d/redis
這里是為了將其配置為服務(wù),方便管理。
[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腳本,它將在修改完后完全為我們服務(wù)。
vim /etc/init.d/redis
(1) 、添加如下圖兩行內(nèi)容
# chkconfig: 2345 66 77
# description: redis service shell
關(guān)于為什么這樣做,請(qǐng)參考在下之前的文章:
淺談Linux中通過chkconfig來設(shè)置服務(wù)開機(jī)自啟動(dòng)
(2) 、修改server和cli路徑
查看自己redis的server和cli絕對(duì)路徑
我的是這個(gè)/general-redis/redis4.0/bin
修改腳本如下:
(3) 、創(chuàng)建配置文件
原來的配置文件CONF="/etc/redis/${REDISPORT}.conf",這里的REDISPORT=6379。
即:CONF的位置在/etc/redis/6379.conf
這里我們可以和它保持一致,當(dāng)然也可以自定位置。
我選擇前者。
補(bǔ)充:要是選擇后者需要指定CONF=你的配置文件實(shí)際位置
在/etc創(chuàng)建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保存退出。
最后補(bǔ)充一點(diǎn):
如果你的redis設(shè)置了密碼,stop時(shí)需要cli客戶端指定密碼登錄來進(jìn)行執(zhí)行shutdown命令。
如下圖:
$CLIEXEC -p $REDISPORT -a 123456 shutdown
5、 測(cè)試腳本
ps -ef | grep redis*
service redis start
service redis stop
6、 設(shè)置為開機(jī)啟動(dòng)
[root@kingdom ~]# chkconfig redis on
[root@kingdom ~]# chkconfig --list
測(cè)試完成,感謝大家支持。
7、補(bǔ)充
Redis腳本內(nèi)容如下所示,或者大家可以留言。
#!/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