如何在Linux中配置Redis服务并设置为开机自启

废话不多说,咱们直接开始。

1、修改redis.conf配置文件

配置redis.conf中daemonize为yes,确保守护进程开启。

大概在148行,当然你也可以使用:/daemonize搜索。

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(1)

2、查看原生的redis启动脚本

[root@kingdom ~]# find / -name redis_init_script

/general-redis/redis-4.0/utils/redis_init_script

提示:

redis启动脚本一般在redis根目录的utils

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(2)

(2)查看脚本

vim /general-redis/redis-4.0/utils/redis_init_script

提示:

注意以下标红的这几点。

因为我们下面的操作都是为它服务的。

其实就是把这些变量的值修改为我们自己redis的实际路径和配置文件。

补充一点:

大家可以多looklook人家的脚本,可以学到不少东西。

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(3)

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

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(4)

4、 修改脚本redis

注意:

这里修改的是/etc/init.d/redis脚本,它将在修改完后完全为我们服务。

vim /etc/init.d/redis

(1) 、添加如下图两行内容

# chkconfig: 2345 66 77

# description: redis service shell

关于为什么这样做,请参考在下之前的文章:

浅谈Linux中通过chkconfig来设置服务开机自启动

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(5)

(2) 、修改server和cli路径

查看自己redis的server和cli绝对路径

我的是这个/general-redis/redis4.0/bin

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(6)

修改脚本如下:

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(7)

(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

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(8)

别忘把redis脚本:wq保存退出

最后补充一点:

如果你的redis设置了密码,stop时需要cli客户端指定密码登录来进行执行shutdown命令

如下图:

$CLIEXEC -p $REDISPORT -a 123456 shutdown

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(9)

5、 测试脚本

ps -ef | grep redis*

service redis start

service redis stop

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(10)

6、 设置为开机启动

[root@kingdom ~]# chkconfig redis on

[root@kingdom ~]# chkconfig --list

linux设置开机自启动脚本(Redis脚本设置为服务并开机自启动)(11)

测试完成,感谢大家支持。

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