






















背景:
一个项目,客户给的服务器还是老的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
/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
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
/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上稳定高性能,可进行以下内核参数优化:
/etc/sysctl.conf,增加:vm.overcommit_memory = 1 # 允许内存超分配,避免fork失败
net.core.somaxconn = 1024 # 提高TCP连接队列长度
vm.swappiness = 0 # 尽可能禁用swap交换
执行 sudo sysctl -p 使配置生效。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`)。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。