Centos下配置Redis开机启动脚本

下面是 CentOS 下配置 Redis 开机启动脚本的完整攻略。

步骤1:下载并安装 Redis

首先需要下载并安装 Redis,可以到 Redis 官网(https://redis.io/download)下载对应版本的 Redis,解压到指定目录,然后使用 make 命令进行编译和安装即可,具体步骤如下:

# 下载 Redis 5.0.8
wget http://download.redis.io/releases/redis-5.0.8.tar.gz

# 解压
tar -zxvf redis-5.0.8.tar.gz

# 进入解压后的目录
cd redis-5.0.8

# 编译并安装
make && make install

步骤2:创建 Redis 配置文件

接下来需要创建 Redis 的配置文件,可以在 Redis 源码包中找到一个默认的配置文件 redis.conf,可以将其复制到/etc目录下,并进行一些必要的修改,比如修改服务端口号等。具体步骤如下:

# 进入 Redis 目录
cd redis-5.0.8

# 复制配置文件到 /etc 目录下
cp redis.conf /etc/redis.conf

# 修改配置文件,比如修改服务端口号为 6379
vim /etc/redis.conf

# 将以下内容更改为:
# bind 127.0.0.1
# protected-mode yes
# port 6379

步骤3:创建 Redis 启动脚本

Redis 的启动脚本可以自己手动编写,也可以使用系统提供的 init.d 脚本。这里我们使用系统提供的脚本,具体步骤如下:

在 CentOS 中,需要使用 chkconfig 命令开启并管理系统服务,所以需要创建对应的启动脚本 /etc/init.d/redis,将以下代码复制到文件中:

#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:   - 85 15
# description:  Redis is a persistent key-value database
# processname: redis-server
# config:      /etc/redis.conf
# pidfile:     /var/run/redis.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ $NETWORKING = "no" ] && exit 0

redis="/usr/local/bin/redis-server"
prog=$(basename $redis)

REDIS_CONF_FILE="/etc/redis.conf"

[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {
    [ -x $redis ] || exit 5
    [ -f $REDIS_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $redis $REDIS_CONF_FILE --daemonize yes
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading $prog: "
    killproc $redis -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac

在执行这个脚本前,需要确保文件有可执行权限。

# 给启动脚本设置可执行权限
chmod +x /etc/init.d/redis

步骤4:添加 Redis 启动设置

启动服务脚本已经准备好了,接下来需要添加到系统启动设置中,并设置启动级别,使 Redis 在系统启动时自动启动,命令如下:

# 添加自定义服务
chkconfig --add redis

# 设定服务启动级别,在3,5级别启动并运行
chkconfig --level 35 redis on

示例1:启动 Redis 并在系统启动时自动启动

执行以下命令启动 Redis 并在系统启动时自动启动:

# 启动 Redis 服务
service redis start

# 查看 Redis 服务状态
service redis status

示例2:停止 Redis 并禁用开机启动

如果想停止 Redis 并禁用开机启动,可以执行以下命令:

# 停止 Redis 服务
service redis stop

# 在系统启动时禁用 Redis 服务
chkconfig --del redis

以上是 CentOS 下配置 Redis 开机启动脚本的完整攻略和两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos下配置Redis开机启动脚本 - Python技术站

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

相关文章

  • Redis Zset类型跳跃表算法实现(JAVA)

      Redis 有序集合类型(zset) 底层核心实现的机制就是跳跃表   最近公司搞了技术分享的活动,正好快到我了,最近在研究Redis就说说redis实现的原理吧. 发现还是晚上脑子比较好使,建议看代码时候边看边画图 推荐画图工具 http://draw.io/ 首先定义一个双向链表的类       双向链表的流程图    跳跃表的结构图        …

    Redis 2023年4月12日
    00
  • TKMybatis的介绍和使用详解

    下面是“TKMybatis的介绍和使用详解”的完整攻略。 一、什么是TKMybatis? TKMybatis是基于Mybatis框架的增强工具,在Mybatis的基础上加入了一些新特性和优化,使得使用Mybatis更加简便,高效、方便。 二、如何使用TKMybatis? 引入TKMybatis依赖包到你的工程中 <!– TKMybatis依赖 –&…

    database 2023年5月21日
    00
  • 为Java项目添加Redis缓存的方法

    下面我将详细讲解为Java项目添加Redis缓存的方法。 1. 前置条件 在为Java项目添加Redis缓存之前,需要确保以下条件已经满足: 安装并启动Redis服务 在Java项目的依赖中添加Redis客户端(如Jedis、Lettuce等) 2. 添加Redis缓存的步骤 2.1 配置Redis连接信息 在Java项目中,需要配置与Redis服务器连接的…

    database 2023年5月22日
    00
  • 在jsp中用bean和servlet联合实现用户注册、登录

    在JSP中使用JavaBean和Servlet联合实现用户注册、登录功能的步骤如下: 创建Servlet用于处理用户请求。 可以创建一个Servlet,用于响应用户提交的表单请求,该Servlet在获取表单数据后,使用JavaBean的对象作为数据模型objectModel,在JavaBean对象中进行数据验证和业务逻辑处理,最后将结果返回给用户。 示例代码…

    database 2023年5月22日
    00
  • mysql 生成连续日期及变量赋值

    下面给您详细讲解MySQL生成连续日期及变量赋值的完整攻略。 生成连续日期 1. 使用递归函数 使用MySQL递归函数,可以生成一段时间内连续的日期。下面给出一个示例代码。 WITH RECURSIVE dates(d) AS ( SELECT DATE(‘2022-03-01’) d UNION ALL SELECT d + INTERVAL 1 DAY …

    database 2023年5月21日
    00
  • mysql -sql语句not in判断条件注意事项

    sql语句not in判断条件注意事项   问题描述:mysql数据库,存在两个表org表和kdorg表,用于存储组织信息。现在我需要从org表找出组织,条件为该组织不在kdorg表里。   sql语句:select o.orgno o.orgname from org o where orgno not in(select kd.orgno from kd…

    MySQL 2023年4月16日
    00
  • Python3与SQLServer、Oracle、MySql的连接方法

    环境: python3.4 64bit pycharm2018社区版 64bit Oracle 11 64bit SQLServer· Mysql 其中三种不同的数据库安装在不同的服务器上,通过局域网相连 步骤1:在pycharm上安装相应的包,可通过pip或者其他方式 步骤2:import这些包 import pymysql,pymssql,cx_Orac…

    MySQL 2023年4月16日
    00
  • 如何使用Python获取数据库中的表结构信息?

    要使用Python获取数据库中的表结构信息,可以使用Python的内置模块sqlite3或第三方库mysql-connector-python。以下是使用mysql-connector-python获取数据库中的表结构信息的完整攻略: 连接数据库 要连接到数据库,需要提供数据库的主机名、用户名、和数据库。可以使用以下代码连接MySQL: import mys…

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