`

Redis加入Centos Linux开机启动

阅读更多

Redis加入Centos Linux开机启动

      网上有很多redis在linux下自动启动的例子,实现的方式很多,很多都是参考一个老外流传出来启动的例子,其实直接使用是不行,而且有很多地方有一些语法错误,这里就讲我实验过,成功的Linux服务chkconfig配置启动的方法。

下面直接贴出内容,大家下载后进行修改即可使用,后面会详解具体参数:

# chkconfig: 2345 10 90
# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/opt/redis-2.8.9/src/redis-server
REDIS_CLI=/opt/redis-2.8.9/src/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"
AUTH="1234"

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
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."
                        $REDIS_CLI -p $REDISPORT -a $AUTH  SHUTDOWN 
                        sleep 2
                        while [ -x $PIDFILE ]
                        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

 

# chkconfig: 2345 10 90

表示通过chkconfig配置,在linux中2、3、4、5项中启动,这个2345代表就linux系统的启动顺序具体,具体内容是:等级0表示:表示关机、等级1表示:单用户模式、等级2表示:无网络连接的多用户命令行模式、等级3表示:有网络连接的多用户命令行模式、等级4表示:不可用、 等级5表示:带图形界面的多用户模式、  等级6表示:重新启动

如果看不明白,自己百度chkconfig命令详细说明。

 

# description: Start and Stop redis

上面一句是描述

 

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

PATH是启动脚本使用的shell的搜索路径

 

REDISPORT=6379

REDISPORT指redis端口,启动redis使用

 

EXEC=/opt/redis-2.8.9/src/redis-server

安装redis后redis-server的绝对路径,在启动redis时使用

 

REDIS_CLI=/opt/redis-2.8.9/src/redis-cli

redis连接程序绝对路径,在关闭redis时使用

 

PIDFILE=/var/run/redis.pid

redis.conf配置文件中指定的pid路径地址,这里说明一下,在redis.conf配置文件中需要将daemonize这个参数项设置为 yes才会在redis启动时生成pid文件,很多新人不知道,没有生成pid文件,所以脚本里根据pid文件关闭redis就失败。

 

 

CONF="/etc/redis.conf"

redis启动配置文件,启动使用

 

AUTH="1234"

如果redis设置了登录密码,就需要这个配置,具体看下面介绍stop的章节

 

 start)

                # 这里判断PID文件是否存在,如果存在,就说明reids启动中或者运行异常,因为redis启动后会创建一个pid文件,如果正常关闭就会删除这个pid文件

                if [ -f $PIDFILE ]

                then

                        echo "$PIDFILE exists, process is already running or crashed."

                else

               # 如果不存在pid文件,就启动reids,启动成功后提示 "Redis is running..."

                        echo "Starting Redis server..."

                        $EXEC $CONF

                fi

                if [ "$?"="0" ]

                then

                        echo "Redis is running..."

                fi

                ;;

        stop)

                # 在关闭reids的时候,如果pid文件不存在,就判断redis没有启动

                if [ ! -f $PIDFILE ]

                then

                        echo "$PIDFILE exists, process is not running."

                else

                ## -- 如果存在pid文件,就获取pid编号,然后登录到redis中,输入SHUTDOWN 来停止redis服务

                        PID=$(cat $PIDFILE)

                        echo "Stopping..."

                     ## -- 本节例子是redis有设置登录密码的例子,如果没有登录密码,下面的命令就去掉-a $AUTH : $REDIS_CLI -p $REDISPORT  SHUTDOWN 

                        $REDIS_CLI -p $REDISPORT -a $AUTH  SHUTDOWN 

                        sleep 1

                     ## -- 循环判断pid文件是否存在,这里用的是是否可执行,道理一样,理解为程序是否停止就可以了,直到pid文件删除后,就说明redis关闭了。

                        while [ -x $PIDFILE ]

                        do

                                echo "Waiting for Redis to shutdown..."

                                sleep 1

                        done

                        echo "Redis stopped"

                fi

                ;;

 

最后说几个可能遇到的问题:

1. 如果启动脚本提示某个文件找不到,说明我们文件里的内容有误:比如cat $(PIDFILE) -x ${PIDFILE} 如果这些写在正常的指令或者字符串中正常,但是在判断表达式[]中就会出错

 

2.如果找不到pid文件,需要配置redis.conf配置中的选项打开。

 

其实所以问题都是一点点的排查检查才能最终正确。保持耐心和细心就可以了。 

  • 大小: 25.3 KB
  • 大小: 25.3 KB
0
0
分享到:
评论

相关推荐

    Redis 在Centos Linux 上如何实现自启

    ### Redis在Centos Linux上实现自启动的知识点详解 #### 一、背景介绍与...通过以上步骤,我们不仅完成了Redis在Centos Linux系统中的安装配置,还实现了其开机自动启动的功能,这有助于提高系统的稳定性和可用性。

    CentOS(Linux)离线安装Redis详细教程(亲测可行)

    ### CentOS (Linux) 离线安装 Redis 详细教程 #### 一、引言 在没有互联网连接的情况下,在 CentOS 系统上安装 Redis 可能会遇到诸多挑战,如依赖包缺失、软件包管理工具配置不当等。本教程旨在帮助读者解决这些...

    Centos开机自启动redis.txt

    ### CentOS 开机自启动 Redis 的配置与管理 #### 背景介绍 在现代软件架构中,Redis(Remote Dictionary Server)是一种广泛使用的开源键值存储系统,它支持多种数据结构如字符串、哈希表、列表等,并且可以作为...

    Linux下Redis3.2.2安装与启动配置

    ### Linux下Redis 3.2.2安装与启动配置 #### 环境准备 - **操作系统**: CentOS 6.5 (2.6.32-431.el6.x86_64) - **软件**: Redis 3.2.2 #### 下载与解压 1. 使用`wget`命令下载Redis安装包: ```bash wget ...

    rabbit&redis自启动 linux脚本

    然后,你可以使用`chkconfig`(CentOS/RHEL)或`systemd`(Ubuntu/Debian)将Redis设置为开机启动。 ```bash # 在/etc/init.d/redis 文件中添加启动、停止等函数 # ... # 添加执行权限 sudo chmod +x /etc/...

    CentOS7 linux下yum安装redis以及使用

    设置 Redis 为开机自动启动 为了让 Redis 在系统启动时自动运行,可以使用以下命令: ```bash chkconfig redis on ``` 对于 CentOS7 使用 `systemctl`: ```bash systemctl enable redis ``` ##### 6. 进入 ...

    linux服务器上centos7.5离线安装redis 所需要的gcc包

    在Linux服务器上安装Redis,尤其是处于离线环境的CentOS 7.5系统,需要一些必要的依赖包,其中最重要的就是GCC(GNU Compiler Collection)。GCC是GNU项目的一部分,它是一个开源的编译器套件,用于将源代码编译成可...

    redis安装离线版免编译版及离线安装需要的所有包文件

    本资源可结合我的文章《详解CentOS7下编译安装Redis5.x设置开机启动及修改端口(含redis需编译安装包和redis免编译安装包)》配合使用,同时也可单独去使用。包含redis3.0.7免编译版安装包,redis5.0.7离线安装包,...

    centos安装redis集群

    5. **启动Redis服务**:创建一个系统服务脚本,例如`/etc/init.d/redis-server`,然后通过`sudo systemctl enable redis-server`使其开机启动,并用`sudo systemctl start redis-server`启动服务。 **二、配置Redis...

    自动离线安装centos7,mysql,redis,nginx

    最后,使用`systemctl start redis`、`systemctl enable redis`来启动和设置开机启动。 3. **Nginx**:Nginx是一款高性能的Web服务器,常用于反向代理和负载均衡。离线安装Nginx,我们需要将`nginx-*.rpm`传输到...

    centos 6.5 安装redis3.0.7

    - 将 Redis 设置为开机自动启动。 ``` echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local ``` 11. **设置密码**: - 在 Redis 配置文件中添加或修改密码选项。 ``` vi /etc/...

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

    在Linux的CentOS 7.0和Debian 8.0系统中设置Redis开机启动,主要是通过创建自定义的初始化脚本,然后利用系统提供的服务管理工具(如`chkconfig`或`update-rc.d`)将Redis服务注册为开机启动。这个过程确保了每次...

    Linux(CentOS7)离线安装Redis包含依赖

    在Linux系统,特别是CentOS 7环境中,离线安装Redis是一项常见的任务,尤其在没有网络连接或者网络环境受限的服务器上。本教程将详细介绍如何在CentOS 7中离线安装Redis及其所有必要的依赖。 首先,我们需要理解...

    redis-6.0.16.tar.gz-linux安装包

    设置开机启动Redis服务,创建软链接到`/etc/init.d`: ```bash sudo ln -s /usr/local/bin/redis-server /etc/init.d/redis ``` 然后,启动、停止和重启Redis服务可以通过以下命令完成: ```bash sudo service ...

    redis_linux安装包.zip

    5. 设置为开机启动:`sudo systemctl enable redis` **在CentOS/RHEL系统上安装Redis**: 1. 添加Redis仓库:`sudo tee /etc/yum.repos.d/redis.repo ,然后添加仓库配置。 2. 安装Redis:`sudo yum install redis`...

    centos下rpm安装mysql到指定路径及两台服务器主从搭建

    安装完成后,启动Redis服务并设置开机启动: ``` sudo systemctl start redis sudo systemctl enable redis ``` 4. **配置Redis安全**: 默认情况下,Redis是监听在所有网络接口上的,为了安全起见,可以通过...

    tiancang.tar.gz 离线一键安装redis数据库 redis版本 redis-5.0.7 CentOS 7

    6. **设置开机启动**:为了使Redis在每次系统启动时自动运行,执行: ``` sudo systemctl enable redis ``` 7. **验证安装**:使用`redis-cli`工具(在安装过程中会一起编译安装)测试连接: ``` redis-cli ...

    redis for linux

    若需设置为开机启动: ```bash sudo systemctl enable redis ``` Redis的默认配置文件位于`/etc/redis/redis.conf`,可以根据实际需求进行修改。例如,如果你想更改Redis监听的端口,可以在配置文件中找到`port`项...

    redis安装包+redis-desktop-manager-基于linux操作系统.zip

    7. **设置开机启动**:为了使Redis在系统启动时自动启动,创建一个系统服务文件,如在Systemd系统中,可以编写一个名为`redis.service`的文件,并放入`/etc/systemd/system`目录。然后,使用`sudo systemctl enable ...

    redis全套windows和linux安装包以及桌面管理工具redis-desktop-manager

    - 在CentOS/RHEL系统中,可以使用`sudo yum install redis`或者加入EPEL源后安装。 - 安装完成后,配置文件通常位于`/etc/redis/redis.conf`,根据需求进行配置。 - 启动Redis服务:`systemctl start redis....

Global site tag (gtag.js) - Google Analytics