Linux 源码安装 Redis 6.0.10 超详细教程(含编译报错、SCL源失效解决方案) 一、前期准备1.1 环境依赖Redis 基于 C 语言开发源码编译安装必须依赖 GCC 编译环境未安装需提前执行命令安装基础编译依赖yuminstallgcc-c1.2 安装包下载官方下载地址https://redis.io/download选择Stable 稳定版本文以 redis-6.0.10 为例下载安装包后通过远程工具FinalShell/Xshell 等将安装包上传至服务器/usr/local目录。二、Redis 源码安装步骤2.1 解压安装包进入上传目录执行解压命令cd/usr/localtar-xvfredis-6.0.10.tar.gz2.2 编译源码解决报错核心步骤1. 进入解压后的 Redis 目录直接执行编译会出现gcc 未找到、jemalloc 依赖缺失、结构体参数报错等一系列问题根源为系统默认 GCC 版本过低不兼容 Redis6.0 编译语法需先升级高版本编译工具链# 进入Redis目录cdredis-6.0.10# 安装SCL源及高版本GCC编译工具yum-yinstallcentos-release-scl yum-yinstalldevtoolset-9-gcc devtoolset-9-gcc-c devtoolset-9-binutils# 临时启用gcc9编译环境当前终端生效sclenabledevtoolset-9bash2. 重新执行编译、安装命令# 源码编译make# 安装Redismakeinstall2.3 规范安装目录结构安装完成后手动创建配置目录、脚本目录规整文件存放位置# 在Redis根目录创建文件夹mkdirbinmkdiretc# 将核心配置文件移动到etc目录mvredis.conf etc/# 进入src目录迁移运行脚本到bin目录cdsrcmvmkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server../bin/三、Redis 核心配置优化3.1 配置外网访问bind 参数详解进入配置文件目录编辑redis.conf配置外网访问权限cd/usr/local/redis-6.0.10/etcvimredis.conf输入/bind搜索配置项修改参数将默认bind 127.0.0.1改为bind 0.0.0.0bind 参数核心原理避坑重点很多人对 bind 配置存在认知误区其并非限制访问IP而是绑定本机网卡IPbind 127.0.0.1绑定本机回环网卡仅服务器本地可连接 Redis安全性极高无需密码也不会被外网访问生产环境推荐配置。bind 0.0.0.0绑定本机所有网卡允许所有网段主机访问需开放服务器6379端口配置密码仅测试环境使用。3.1.1 protected-mode 保护机制详解核心安全要点Redis 自带保护模式是核心安全屏障仅同时满足以下3个条件才会自动开启开启后仅本机可访问服务1、保护模式开启protected-mode yes默认开启2、未手动配置 bind 绑定网卡3、未设置 Redis 登录密码。任意一个条件不满足保护模式自动失效。因此测试环境开启外网访问bind 0.0.0.0后必须配置密码避免裸奔暴露公网引发数据泄露、恶意入侵风险。若需精准限制指定IP访问不能通过 bind 实现需借助服务器防火墙/安全组策略限制6379端口访问权限。详细原理参考Redis bind 参数深度解析3.2 设置后台运行继续编辑redis.conf输入/daemonize搜索修改配置将daemonize no改为daemonize yes设置 Redis 后台常驻运行。3.3 设置登录密码输入/requirepass搜索密码配置取消注释设置自定义密码修改为requirepass 自定义密码四、Redis 启动与连接测试4.1 启动 Redis 服务cd/usr/local/redis-6.0.10/bin redis-server../etc/redis.conf4.2 客户端连接 Redis# 远程连接格式redis-cli -h 服务器IP -p 端口redis-cli-h10.0.0.10-p6379# 输入密码认证auth 自定义密码4.3 清空数据慎用测试环境如需清空所有 Redis 缓存数据执行以下命令生产环境禁止随意使用**清空后数据无法恢复**FLUSHALL五、常见报错解决方案SCL源失效5.1 报错信息执行yum install devtoolset-9时报错Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64Could not resolve host: mirrorlist.centos.org5.2 报错原因CentOS 7 官方 SCL 源已于2024年6月30日停止维护默认官方镜像地址无法访问需替换为阿里云镜像源。5.3 完整解决步骤# 1. 进入yum源配置目录cd/etc/yum.repos.d/# 2. 备份原有失效的SCL源文件mvCentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bakmvCentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak# 3. 新建阿里云SCL源配置文件vimCentOS-SCLo-rh.repo粘贴以下完整配置内容并保存退出[centos-sclo-rh] nameCentOS-7 - SCLo rh baseurlhttps://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck1 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo4. 清理缓存并重新执行编译工具安装命令即可正常使用。5.4 启动后内核警告修复可选优化Redis 启动后会出现两个常见内核警告长期运行会影响性能、导致持久化失败建议永久修复警告1overcommit_memory 内存参数异常问题低内存场景下Redis后台持久化可能失败临时修复立即生效sysctl vm.overcommit_memory1永久修复编辑/etc/sysctl.conf添加vm.overcommit_memory 1执行sysctl -p生效警告2透明大页THP开启问题会造成Redis延迟波动、内存占用异常临时修复立即生效echo madvise /sys/kernel/mm/transparent_hugepage/enabled永久修复将上述命令写入/etc/rc.local开机自动执行重启Redis生效问题参考文档SCL源失效修复方案详细安装排坑参考Redis 安装全坑解决方案