linux(centos7.9)编译安装redis7.2.4

背景:

一个项目,客户给的服务器还是老的centos7.9,虽然说可以暂时给开外网以使用yum仓库,但这24年6月就停服的系统,redis版本只有3.x,还是有些古老,如果找第三方库又担心有安全问题,只能自己编译安装了.

特别说明:

之所以选择7.2.4,有几方面原因:1.这个项目只是用redis基础功能,太新的功能用不上 2.担心老系统的兼容性问题 3.redis厂家骚操作导致后续许可证混乱,这个版本是骚操作之前最后一个版本,一些替代项目比如valkey也是基于这个版本开始,以后迁移方便.

方法:

 

在CentOS 7.9上编译安装Redis 7.2,适合追求新功能和性能的生产环境。以下是经过整合的完整步骤与关键配置。

📦 一、安装环境准备

默认GCC版本(4.8.5)过低,先升级
sudo yum install centos-release-scl
sudo yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
临时启用(仅当前会话有效):
scl enable devtoolset-9 bash
永久启用(对所有新会话生效):
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc
source ~/.bashrc
验证GCC版本
gcc --version

安装编译Redis所需的基础工具和依赖库。

# 更新系统并安装编译依赖
sudo yum update -y
sudo yum install -y gcc make wget tcl jemalloc-devel

🔧 二、下载、编译与安装Redis

  1. 下载源码:进入/usr/local/src目录,下载Redis 7.2.4的源码包(你可以替换为官网上7.2系列的最新稳定版)。
    cd /usr/local/src
    sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz
    
  2. 编译与安装:解压后编译,并安装到指定目录(如/usr/local/redis)。
    sudo tar -zxvf redis-7.2.4.tar.gz
    cd redis-7.2.4
    # 编译,并指定使用 jemalloc 内存分配器以优化性能
    sudo make BUILD_WITH_JEMALLOC=yes
    # 安装到 /usr/local/redis
    sudo make PREFIX=/usr/local/redis install
    

⚙️ 三、配置与系统集成

安装完成后,进行配置和系统服务集成。

  1. 复制配置文件并创建目录
    # 复制默认配置文件
    sudo mkdir -p /etc/redis /var/lib/redis /var/log/redis
    sudo cp redis.conf /etc/redis/
    # 设置目录权限(安全考虑,后续会创建redis用户)
    sudo chown -R redis:redis /var/lib/redis /var/log/redis
    
  2. 创建Redis专用系统用户
    sudo adduser --system --group --no-create-home redis
    
  3. 修改核心配置文件
    编辑 /etc/redis/redis.conf,以下为生产环境关键配置项
    # 绑定内网IP,禁止公网访问(根据实际情况修改)
    bind 192.168.1.100
    # 端口
    port 6379
    # 以守护进程运行,后续如果使用systemd管理[必须]改为no
    daemonize yes
    # 数据存储目录
    dir /var/lib/redis
    # 日志文件
    logfile /var/log/redis/redis.log
    # 设置高强度访问密码
    requirepass YourStrongPasswordHere
    # 禁用危险命令,防止误操作
    rename-command FLUSHALL ""
    rename-command FLUSHDB ""
    rename-command CONFIG ""
    # 内存上限及淘汰策略(根据服务器内存调整,例如4GB)
    maxmemory 4gb
    maxmemory-policy allkeys-lru
    # 启用AOF持久化,平衡安全与性能
    appendonly yes
    appendfsync everysec
    
  4. 创建Systemd服务
    创建文件 /etc/systemd/system/redis.service,内容如下:
    [Unit]
    Description=Redis In-Memory Data Store
    After=network.target
    [Service]
    User=redis
    Group=redis
    ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf
    ExecStop=/usr/local/redis/bin/redis-cli shutdown
    Restart=always
    [Install]
    WantedBy=multi-user.target
    
    然后启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl start redis
    sudo systemctl enable redis
    sudo systemctl status redis # 检查运行状态
    

🛠️ 四、系统层面调优(可选但推荐)

为确保Redis在CentOS 7上稳定高性能,可进行以下内核参数优化:

  1. 修改 /etc/sysctl.conf,增加:
    vm.overcommit_memory = 1  # 允许内存超分配,避免fork失败
    net.core.somaxconn = 1024 # 提高TCP连接队列长度
    vm.swappiness = 0         # 尽可能禁用swap交换
    
    执行 sudo sysctl -p 使配置生效。
  2. 禁用透明大页(THP),这对Redis性能至关重要:
    echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
    # 为永久生效,可将该命令加入 /etc/rc.local
    

✅ 五、验证安装

安装完成后,进行基本验证:
可以使用图形工具:比如 Another Redis Desktop Manager


### 💡 重要注意事项
*   **服务管理**:使用 `sudo systemctl start/stop/restart redis` 来管理服务。
*   **防火墙**:如果其他服务器需要访问,需在防火墙开放对应端口(如`firewall-cmd --add-port=6379/tcp --permanent`)。
posted @ 2025-12-26 15:22  dirgo  阅读(2)  评论(0)    收藏  举报