当前位置: 首页 > news >正文

CentOS 7 编译 Redis 6.x 完整教程(解决 GCC 版本不支持 C11)


🚀 CentOS 7 编译 Redis 6.x 完整教程(解决 GCC 版本不支持 C11)

Redis 6.x 引入了 stdatomic.h 等 C11 特性,而 CentOS 7 默认 GCC 版本为 4.8.5不支持 C11 标准,所以直接编译会失败。


✅ 可选方案概览

方案是否支持 Redis 6.x是否推荐说明
升级 GCC(使用 Devtoolset)✅ 支持⭐推荐不影响系统默认 GCC,兼容性更好
使用 Redis 5.0.x✅ 支持⭐推荐避免修改 GCC,适合仅需基础功能的场景
继续用 GCC 4.8 编译 Redis 6.x❌ 不支持❌不行缺失 stdatomic.h,无法成功编译

✅ 推荐方案一:升级 GCC(使用 Devtoolset 工具链)

🛠️ 步骤一:安装 Devtoolset 和 GCC 9

# 安装软件源(scl 源)
sudo yum install -y centos-release-scl# 安装 GCC 9 和 G++ 9
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++

🛠️ 步骤二:启用新版 GCC(当前会话)

# 切换到新版 GCC 环境(只对当前 shell 有效)
scl enable devtoolset-9 bash# 确认是否为新版
gcc --version

预期输出:

gcc (GCC) 9.x.x

📌 提示:每次新开一个 shell 终端,都要重新运行 scl enable devtoolset-9 bash


🧱 步骤三:编译 Redis 6.x

示例:编译 Redis 6.2.10

# 下载 Redis 源码(如已有可跳过)
cd /usr/local/src
wget http://download.redis.io/releases/redis-6.2.10.tar.gz
tar -xvzf redis-6.2.10.tar.gz
cd redis-6.2.10# 清理旧编译缓存
make distclean# 编译(使用全部核心)
make -j$(nproc)

编译成功后可以启动服务:

src/redis-server redis.conf

🧪 测试 Redis 是否可用

src/redis-cli ping

输出:

PONG

✅ 推荐方案二:使用 Redis 5.0.x(兼容 GCC 4.8.5)

如果你不想升级 GCC,可以选择兼容老编译器的 Redis 5.0:

cd /usr/local/src
wget http://download.redis.io/releases/redis-5.0.14.tar.gz
tar -xvzf redis-5.0.14.tar.gz
cd redis-5.0.14make -j$(nproc)# 启动 Redis 服务
src/redis-server redis.conf

🎯 自动化脚本(可选)

自动切换到 GCC 9 并编译 Redis 的脚本示例:

cat <<EOF > install_redis6_with_gcc9.sh
#!/bin/bash
set -eecho "🔧 安装 Devtoolset-9..."
yum install -y centos-release-scl
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++echo "🚀 启用 GCC 9 环境..."
source /opt/rh/devtoolset-9/enableecho "📦 下载并编译 Redis 6.2.10..."
cd /usr/local/src
wget http://download.redis.io/releases/redis-6.2.10.tar.gz
tar -xvzf redis-6.2.10.tar.gz
cd redis-6.2.10
make -j\$(nproc)echo "✅ 编译完成,启动 Redis..."
src/redis-server redis.conf
EOFchmod +x install_redis6_with_gcc9.sh

然后运行脚本:

bash install_redis6_with_gcc9.sh

📌 总结建议

方案适用场景是否推荐
✅ 升级 GCC(使用 Devtoolset)使用 Redis 6.x 及以上版本⭐推荐
✅ 使用 Redis 5.0.x环境稳定、仅使用基本功能即可⭐推荐
❌ 尝试用 GCC 4.8 编译 Redis 6.x编译会失败,不支持 C11❌不行

http://www.lryc.cn/news/606112.html

相关文章:

  • 告别物业思维:科技正重构产业园区的价值坐标系
  • AR智能巡检:工业4.0时代的降本增效利器
  • [人工智能-综述-17]:AI革命:重塑职业版图,开启文明新篇
  • 数据集归一化
  • 机器学习之逻辑回归(Logistic Regression)
  • 视觉图像处理中级篇 [2]—— 外观检查 / 伤痕模式的原理与优化设置方法
  • 【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step5—Nginx安装
  • Qt 常用控件 - 3
  • vue-seamless-scroll 与 echarts 三联水球图循环滚动的渲染难题-出现短暂空白
  • iOS高级开发工程师面试——其他
  • Linux大页内存导致服务内存不足
  • Java——方法
  • 基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用
  • EEG手工特征提取总结
  • RagFlow本地源码部署(非Docker)
  • 现在有哪些广泛使用的时序数据库?
  • AWS高级解决方案架构师黄海波:GenAI 时代非结构化数据处理的实践与趋势洞察
  • Linux性能检测与调优
  • 解决SparkSQL创建出来的数据库hive中无法识别的问题
  • 切割液性能智能调控系统与晶圆 TTV 预测模型的协同构建
  • toFixed()方法的报错注意
  • Python 程序设计讲义(47):组合数据类型——字典类型:创建字典
  • MySQL常用函数总结
  • 2025年7月最新一区SCI-基尔霍夫定律优化算法Kirchhoff’s law algorithm-附Matlab免费代码
  • [硬件电路-109]:模拟电路 - 自激振荡器的原理,一种把直流能量转换成交流信号的装置!
  • 专题:2025半导体行业研究报告:从AI芯片到封测突围的生死局|附40+份报告PDF、数据汇总下载
  • Apifox 7 月更新|通过 AI 命名参数及检测接口规范、在线文档支持自定义 CSS 和 JavaScript、鉴权能力升级
  • 鸿蒙拉起系统定位和app授权定位
  • 光伏热斑误检率↓79%!陌讯多模态融合算法在智慧能源的落地优化
  • 当文档包含图文混排表格时,如何结合大模型(如DeepSeek-VL)和OCR提取数据