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
- 下载源码:进入
/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 - 编译与安装:解压后编译,并安装到指定目录(如
/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
⚙️ 三、配置与系统集成
安装完成后,进行配置和系统服务集成。
- 复制配置文件并创建目录
# 复制默认配置文件 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 - 创建Redis专用系统用户
sudo adduser --system --group --no-create-home redis - 修改核心配置文件
编辑/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 - 创建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.targetsudo systemctl daemon-reload sudo systemctl start redis sudo systemctl enable redis sudo systemctl status redis # 检查运行状态
🛠️ 四、系统层面调优(可选但推荐)
为确保Redis在CentOS 7上稳定高性能,可进行以下内核参数优化:
- 修改
/etc/sysctl.conf,增加:
执行vm.overcommit_memory = 1 # 允许内存超分配,避免fork失败 net.core.somaxconn = 1024 # 提高TCP连接队列长度 vm.swappiness = 0 # 尽可能禁用swap交换sudo sysctl -p使配置生效。 - 禁用透明大页(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`)。

浙公网安备 33010602011771号