举杯邀月

centos中redis的启动、关闭的几种方法方式

摘要:通过redis命令行启动、service启动脚本、systemctl管理脚本启动关闭redis的方式

第一种 通过redis命令行启动

redis安装后会包含redis-serve服务文件及redis.conf配置文件

通过redis-serve redis.conf命令进行启动

通过redis-serve -p 6389 -h 127.0.0.1 -a 【密码】 showdown命令进行关闭

第二种 service控制系统服务命令

创建 service 服务脚本,这个在reids安装包中一般是包含的,在utils目录下有个redis_init_script文件,直接拷贝到/etc/init.d/下,命名为redis即可;

服务脚本文件内容大致为:

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

然后直接通过命令service [start|stop] redis进行启动与关闭

第三种,通过systemctl系统服务管理器(centos7+)

在/lib/systemd/system目录下创建一个脚本文件redis.service服务文件,内容为:

[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11

文件内容说明:

  • [Unit] 表示这是基础信息

  • Description 是描述

  • After 是在那个服务后面启动,一般是网络服务启动后启动

  • [Service] 表示这里是服务信息

  • ExecStart 是启动服务的命令

  • ExecStop 是停止服务的指令

  • Restart 是设置守护进程

  • [Install] 表示这是是安装相关信息

  • WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

然后通过命令systemctl [start|stop] redis进行服务的启动与关闭

总结

其实不管用那种方式去启动服务,最终都是用的第一种方式进行的操作,只是用第二种、第三种方式会有节省更多的维护及时间。

尤其是systemctl,它有很多其他的关联管理,比如守护进程、自启动等等。

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fdb237dc6a01.html

2020-10-19 标签: linuxredis