Linux中设置Redis开机启动的方法

下面我将为您详细讲解“Linux中设置Redis开机启动的方法”的完整攻略,以下是具体步骤:

1. 编写Redis启动脚本

/etc/init.d/目录下新建一个名为redis的文件,这个文件就是我们的启动脚本,使用以下命令:

sudo vim /etc/init.d/redis

然后把以下代码粘贴进去:

#!/bin/sh
# chkconfig: 2345 95 05
# description: Redis is a persistent key-value database

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 Redis server..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
restart|force-reload)
        ${0} stop
        ${0} start
        ;;
*)
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac

exit 0

在这段代码中,我们定义了启动Redis所需的一些变量以及需要执行的指令,可以根据自己的实际情况调整相关的参数和路径。

2. 赋予脚本权限

在安装好Redis之后,需要把这个启动脚本设置为可执行文件,并赋予它相应的权限。使用以下命令:

sudo chmod 755 /etc/init.d/redis

3. 使Redis自动启动

使用以下命令将Redis设置为自动启动:

sudo chkconfig --add redis

这个命令会自动将Redis添加到启动项中,达到自动启动的目的。当需要关闭自启动时,使用以下命令:

sudo chkconfig --del redis

4. 演示

以下是两个实例说明:

示例1:CentOS 7

假设我们的Redis安装位置是 /usr/local/bin/redis-server,配置文件位置是 /etc/redis/redis.conf。我们可以使用以下命令来演示如何使Redis自动启动:

sudo vim /etc/init.d/redis

将以下代码复制进去:

#!/bin/bash

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis.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 Redis server..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    restart)
        ${0} stop
        ${0} start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 1
esac

exit 0

接下来,使脚本可执行并且加入启动项:

sudo chmod 755 /etc/init.d/redis
sudo chkconfig --add redis
sudo chkconfig redis on

现在,重启系统,你会发现Redis已经自动启动了。

示例2:Ubuntu 16.04

假设我们的Redis安装位置是 /usr/bin/redis-server,配置文件位置是 /etc/redis/redis.conf。我们可以使用以下命令来演示如何使Redis自动启动:

首先,在/etc/init.d/目录下新建一个名为redis的文件:

sudo vim /etc/init.d/redis

将以下代码复制进去:

#! /bin/sh
### BEGIN INIT INFO
# Provides:             redis-server
# Required-Start:       $syslog $remote_fs
# Required-Stop:        $syslog $remote_fs
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    redis-server - Persistent key-value db
# Description:          redis-server - Persistent key-value db
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
NAME=redis-server
DESC=redis-server

RUNDIR=/var/run/redis
PIDFILE=$RUNDIR/redis.pid

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
    echo -n "Starting $DESC: "

    mkdir -p $RUNDIR
    touch $PIDFILE
    chown redis:redis $RUNDIR $PIDFILE
    chmod 755 $RUNDIR

    if [ -f $PIDFILE ]
    then
        echo "already running."
        exit 1
    fi

    # Protect against redis.conf changing in meantime
    mkdir -p /var/lock/subsys
    touch /var/lock/subsys/$NAME

    $DAEMON $DAEMON_ARGS --pidfile $PIDFILE &

    echo "started."
    ;;
  stop)
    echo -n "Stopping $DESC: "

    if [ ! -f $PIDFILE ]
    then
        echo "not running."
        exit 0
    fi

    rm -f /var/lock/subsys/$NAME

    $DAEMON $DAEMON_ARGS --pidfile $PIDFILE --stop

    echo "stopped."
    ;;
  restart|force-reload)
    ${0} stop
    sleep 1
    ${0} start
    ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

接下来,使脚本可执行并且加入启动项:

sudo chmod 755 /etc/init.d/redis
sudo update-rc.d redis defaults

现在,重启系统,你会发现Redis已经自动启动了。

以上就是在Linux上设置Redis开机启动的全部攻略,希望可以帮到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux中设置Redis开机启动的方法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL 中 CASE 表达式的使用方式

    SQL 中 CASE 表达式可以用于进行条件判断,根据不同的条件返回不同的结果,语法结构如下: CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 … [ELSE resultN] END 其中 expression 代表要进行判断的表达式,value1、value2 分别代…

    database 2023年5月21日
    00
  • 详解MySQL实时同步到Oracle解决方案

    详解MySQL实时同步到Oracle解决方案 前言 当今互联网时代,数据作为数字时代最重要的资产,不论是海量大数据还是小而精细的数据,都非常宝贵。在企业级应用中,多数据库间数据的同步一直是一个难题。本文详细讲解了如何采用MySQL实时同步到Oracle的解决方案。 解决方案 MySQL与Oracle都是业内常用的数据库系统。MySQL的优势在于易安装、易配置…

    database 2023年5月19日
    00
  • Nodejs 连接 mysql时报Error: Cannot enqueue Query after fatal error错误的处理办法

    首先,需要理解该错误的产生原因,即在于连接的mysql实例出现了致命错误,后续再进行查询等操作就会出现该错误。 处理该错误的方式如下: 在创建连接的时候,加上supportBigNumbers: true, 与 bigNumberStrings: true配置。 const mysql = require(‘mysql’); const connection…

    database 2023年5月18日
    00
  • MySQL 5.7.20绿色版安装详细图文教程

    MySQL 5.7.20绿色版安装详细图文教程 前言 本教程介绍如何在Windows操作系统中安装MySQL 5.7.20绿色版,采用绿色版无需安装即可使用的特点,方便快捷。本教程包含图文说明,便于理解,适用于初学者。 步骤 1. 下载MySQL 5.7.20绿色版 在MySQL官方网站上下载MySQL 5.7.20绿色版压缩包,可以通过官网的下载链接或者第…

    database 2023年5月22日
    00
  • MySql数据库触发器使用教程

    MySql数据库触发器使用教程 MySQL触发器常用于在特定表上定义自动化的操作,以代替手动执行相应的SQL语句,从而提高工作效率。 触发器的基本概念 触发器(Trigger)是指一种能够进行自动化的操作,通常是在特定的表上定义所触发的操作,以代替手工地执行相应的SQL语句。 MySQL支持三类触发器: BEFORE触发器:在所触发的操作执行之前先执行相应的…

    database 2023年5月21日
    00
  • JDBC连接Oracle数据库常见问题及解决方法

    下面我将为您详细讲解“JDBC连接Oracle数据库常见问题及解决方法”的完整攻略。包括以下几个方面: JDBC连接Oracle数据库的基本方法 首先,我们需要下载并安装Oracle JDBC驱动程序,然后在Java代码中引入该驱动程序。在Java中连接Oracle数据库的方式如下: Class.forName("oracle.jdbc.drive…

    database 2023年5月21日
    00
  • MySQL数据库备份与恢复方法

    MySQL数据库备份与恢复方法 MySQL是一款广泛使用的关系型数据库管理系统,其数据备份与恢复是非常重要的操作,本文将介绍如何备份与恢复MySQL数据库。 备份MySQL数据库 使用mysqldump命令备份 打开终端或命令提示符,并登录到MySQL服务器: mysql -uroot -p 输入密码并登录到MySQL服务器。 执行以下命令来备份数据库: m…

    database 2023年5月22日
    00
  • Mysql常用命令 详细整理版

    MySQL是一款常见的关系型数据库管理系统,非常适合用于构建应用程序和Web网站。了解MySQL的基本命令非常重要,可以方便地管理和维护数据库。 登录MySQL 在终端或命令行中输入以下命令以登录MySQL: mysql -u username -p 其中,username是你的MySQL用户名,输入密码后即可进入MySQL。 创建数据库 使用以下命令创建一…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部