基于CentOS 一键编译安装Redis脚本

#!/bin/bash
#********************************************************************
# Author: wangxiaochun
# QQ: 29308620
# Date: 2020-02-22
# FileName: install_redis_for_centos.sh
# URL: http://www.magedu.com
# Description: The test script
# Copyright (C): 2020 All rights reserved
#********************************************************************

# 导入系统函数库
. /etc/init.d/functions

# 定义变量
VERSION=redis-4.0.14
PASSWORD=123456
INSTALL_DIR=/apps/redis

# 安装函数
install() {
    # 安装编译 Redis 所需的软件包
    yum -y install gcc jemalloc-devel || { action "安装软件包失败,请检查网络配置" false ; exit; }
    
    # 下载并解压 Redis 源码
    wget http://download.redis.io/releases/${VERSION}.tar.gz || { action "Redis 源码下载失败" false ; exit; }
    tar xf ${VERSION}.tar.gz
    cd ${VERSION}

    # 编译安装 Redis
    make -j 4 PREFIX=${INSTALL_DIR} install && action "Redis 编译安装完成" || { action "Redis 编译安装失败" false ;exit ; }

    # 创建符号链接
    ln -s ${INSTALL_DIR}/bin/redis-* /usr/bin/

    # 创建目录和配置文件
    mkdir -p ${INSTALL_DIR}/{etc,logs,data,run}
    cp redis.conf ${INSTALL_DIR}/etc/
    sed -i.bak -e 's/bind 127.0.0.1/bind 0.0.0.0/' -e "/# requirepass/a requirepass $PASSWORD" ${INSTALL_DIR}/etc/redis.conf

    # 创建 Redis 用户
    if id redis &> /dev/null ;then
        action "Redis 用户已存在" false
    else
        useradd -r -s /sbin/nologin redis
        action "Redis 用户创建成功"
    fi

    # 修改权限
    chown -R redis.redis ${INSTALL_DIR}

    # 配置系统参数
    cat >> /etc/sysctl.conf <<EOF
net.core.somaxconn = 1024
vm.overcommit_memory = 1
EOF

    # 配置 systemd 服务
    cat > /usr/lib/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=${INSTALL_DIR}/bin/redis-server ${INSTALL_DIR}/etc/redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT \$MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF

    # 重新加载 systemd 配置
    systemctl daemon-reload

    # 启动 Redis 服务
    systemctl start redis &> /dev/null && action "Redis 服务启动成功,Redis信息如下:" || { action "Redis 启动失败" false ;exit; }
    redis-cli -a $PASSWORD INFO Server 2> /dev/null
}

# 执行安装函数
install

下面是对脚本的逐行描述:

#!/bin/bash
#********************************************************************
# Author: wangxiaochun
# QQ: 29308620
# Date: 2020-02-22
# FileName: install_redis_for_centos.sh
# URL: http://www.magedu.com
# Description: The test script
# Copyright (C): 2020 All rights reserved
#********************************************************************

# 导入系统函数库
. /etc/init.d/functions
  • 第一行 #!/bin/bash 指定了脚本使用的解释器为 bash。
  • 注释部分提供了脚本的作者、日期、文件名、URL 和描述等基本信息。
  • . /etc/init.d/functions 导入了系统函数库,以便后续使用系统函数。

# 定义变量
VERSION=redis-4.0.14
PASSWORD=123456
INSTALL_DIR=/apps/redis

定义了三个变量:VERSIONPASSWORDINSTALL_DIR,分别用于指定 Redis 版本、密码和安装目录。

# 安装函数
install() {
    # 安装编译 Redis 所需的软件包
    yum -y install gcc jemalloc-devel || { action "安装软件包失败,请检查网络配置" false ; exit; }
  • 定义了一个名为 install 的安装函数。
  • 使用 yum 安装了编译 Redis 所需的软件包,如 gcc 和 jemalloc-devel。如果安装失败,则执行 action 函数并退出脚本。

    # 下载并解压 Redis 源码
    wget http://download.redis.io/releases/${VERSION}.tar.gz || { action "Redis 源码下载失败" false ; exit; }
    tar xf ${VERSION}.tar.gz
    cd ${VERSION}

使用 wget 下载了指定版本的 Redis 源码,并解压缩到当前目录。

    # 编译安装 Redis
    make -j 4 PREFIX=${INSTALL_DIR} install && action "Redis 编译安装完成" || { action "Redis 编译安装失败" false ;exit ; }

使用 make 编译安装 Redis,指定了安装路径。如果编译安装成功,则执行 action 函数显示成功信息,否则显示失败信息。

    # 创建符号链接
    ln -s ${INSTALL_DIR}/bin/redis-* /usr/bin/

创建了 Redis 的符号链接,方便执行 Redis 相关命令。

    # 创建目录和配置文件
    mkdir -p ${INSTALL_DIR}/{etc,logs,data,run}
    cp redis.conf ${INSTALL_DIR}/etc/
    sed -i.bak -e 's/bind 127.0.0.1/bind 0.0.0.0/' -e "/# requirepass/a requirepass $PASSWORD" ${INSTALL_DIR}/etc/redis.conf

创建了 Redis 所需的目录和配置文件,并修改了配置文件,设置绑定 IP 和密码。

    # 创建 Redis 用户
    if id redis &> /dev/null ;then
        action "Redis 用户已存在" false
    else
        useradd -r -s /sbin/nologin redis
        action "Redis 用户创建成功"
    fi

 判断是否存在 Redis 用户,如果不存在则创建,并通过 action 函数显示结果。

    # 修改权限
    chown -R redis.redis ${INSTALL_DIR}

修改安装目录的所有者为 redis。

    # 配置系统参数
    cat >> /etc/sysctl.conf <<EOF
net.core.somaxconn = 1024
vm.overcommit_memory = 1
EOF

配置系统参数,包括最大连接数和内存分配策略。

    # 配置 systemd 服务
    cat > /usr/lib/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
...
EOF

配置 systemd 服务,定义了 Redis 的启动、停止和用户等信息。

    # 启动 Redis 服务
    systemctl start redis &> /dev/null && action "Redis 服务启动成功,Redis信息如下:" || { action "Redis 启动失败" false ;exit; }
    redis-cli -a $PASSWORD INFO Server 2> /dev/null

启动 Redis 服务,并通过 action 函数显示启动结果,同时使用 redis-cli 获取 Redis 信息。

}

# 执行安装函数
install

执行 install 函数,开始安装 Redis。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向日葵般灿烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值