CentOS 8 Redis安装配置与卸载清理实操指南

发布时间:2026/10/12 6:52:02
CentOS 8 Redis安装配置与卸载清理实操指南 说实话CentOS 8 上装 Redis 这事儿看着简单但这两年坑是真不少。系统源里自带的版本偏老、模块流切换搞不明白、装完忘记配密码被扫描器盯上卸载的时候又因为残留文件导致重装后数据错乱——这些场面我见过太多次了。这篇文章就专门讲清楚两件事CentOS 8 上怎么把 Redis 装好、配好、跑起来以及不需要的时候怎么把它卸得干干净净不留后患。内容偏实操适合刚接触 Linux 运维的开发者也适合那些已经在用但没系统整理过安装卸载流程的同行。我尽量把每一步的“为什么这么做”也讲清楚而不是单纯丢给你一串命令。1. 装之前先看清环境与版本选择1.1 检查系统版本和已有残留不管你是新机器还是旧机器动手之前先花两分钟确认环境。我见过太多人上来就敲安装命令结果要么版本不对要么机器上早就装过 Redis端口冲突直接启动失败。先看系统版本cat /etc/redhat-release如果是 CentOS 8.x 就没问题。接着检查是否已经装过 Redisredis-server --version rpm -qa | grep redis如果命令不存在说明没装过如果命令存在说明之前装过继续操作前得先决定是复用还是清除重来。再看一下端口占用情况ss -lntp | grep 6379Redis 默认监听 6379如果这个端口已经被占用可能是老的 Redis 实例还在跑也可能是别的程序占用了。端口被占时强行装新版大概率启动报错白白浪费时间排查。1.2 Redis 版本选型系统源还是源码编译在 CentOS 8 上装 Redis主流路线就两条一条是用系统自带的 dnf 包管理器直接装另一条是下载源码自己编译安装。两条路我都走过各有适用场景。系统源安装的好处是省事命令少而且由系统的包管理器统一管理以后卸载、升级都方便。但缺点也很明显源里的 Redis 版本通常偏旧。CentOS 8 的 AppStream 源里默认提供 Redis 5虽然可以通过模块流切换版本但即便切到高版本往往也比官方最新版落后不少。源码编译安装的好处是版本任选官方发布新版本后你随时能编译部署还可以根据自己的需求加编译参数。缺点是步骤多、耗时长而且要自己写 systemd 服务管理文件对新手不太友好。我的建议是如果是测试环境、学习用优先走系统源安装快、干净、好卸载。如果是生产环境且对 Redis 版本有明确要求比如需要 7.x 的新特性那直接上源码编译别在旧版本上纠结。1.3 CentOS 8 镜像源失效问题处理这里必须单独提一句因为这是 CentOS 8 特有的坑。CentOS 8 的生命周期结束后官方源迁移到了归档仓库如果你装的是早期的 CentOS 8.x 且没有调整过 yum 源直接执行 dnf 命令往往会报错提示找不到镜像或者下载元数据失败。解决办法是切换 vault 源或者国内常见的开源镜像站点提供的 CentOS 8 归档源。操作思路都类似备份原来的 CentOS-Base.repo替换成新源地址然后清缓存重建dnf clean all rm -rf /var/cache/dnf dnf makecache如果你不清楚具体配置怎么写最简单的做法是确认系统当前使用的仓库文件路径一般是 /etc/yum.repos.d/ 下的 .repo 文件把它替换成对应镜像站点的归档源配置。这一步不处理好后面所有 dnf 操作都会卡壳。2. dnf 安装 Redis 的完整流程2.1 启用模块流安装指定版本CentOS 8 的 AppStream 仓库把 Redis 做成了模块流的形式你可以用 dnf module 命令查看可用的流dnf module list redis输出结果里会列出不同的 Redis 版本流比如 5、6以及当前默认启用的版本。如果你想装默认版本直接执行dnf install redis -y如果你想指定版本先启用对应的模块流再安装。比如要装 Redis 6dnf module enable redis:6 -y dnf install redis -y模块流切换这个操作其实不复杂但很多人不知道。默认版本的 Redis 是跟着系统走的不指定的话装出来往往是老版本。如果你对版本没执念默认版本完全够用如果强迫症发作想要新特性记得先 enable 再 install。安装完成后验证一下redis-server --version能正常输出版本号说明核心程序已经就位。2.2 启动服务与 systemd 托管CentOS 8 上通过 dnf 安装的 Redis 会自动生成 systemd 服务文件你不用自己写直接开起来就行systemctl start redis systemctl enable redisenable 这一步很关键它把 Redis 设置为开机自启。很多人装完忘了这步服务器重启后 Redis 没起来业务直接断连排查一圈才发现是没设开机自启。启动后看状态systemctl status redis状态显示 active (running) 就说明已经跑起来了。如果状态异常先看日志journalctl -u redis -n 50 --no-pager日志会告诉你启动失败的具体原因。最常见的几个原因后面专门写一节。2.3 安全配置bind、密码、保护模式服务跑起来只是第一步不把安全配置做了就等于把 Redis 裸奔在网络上。Redis 默认配置有几个安全弱点只绑定了 127.0.0.1但如果你改了 bind或者保护模式没管好又或者没有设密码这些都是被入侵的入口。修改配置文件 /etc/redis.conf重点看这几项bind 127.0.0.1 protected-mode yes requirepass 你的强密码 daemonize nobind 指定监听地址默认 127.0.0.1 表示只允许本机访问。如果你需要远程连接可以改成内网 IP但绝不要直接设成 0.0.0.0除非你密码够复杂且防火墙做了严格限制。protected-mode 是保护模式开启后如果 Redis 没有密码且没有绑定内网 IP它会拒绝外部访问相当于兜底防线建议保持 yes。requirepass 就是设置访问密码。这一项强烈建议设置哪怕是测试环境。因为互联网上有大量扫描器在扫 6379 端口一旦发现没密码的 Redis轻则被写入恶意定时任务重则直接拿你的机器挖矿。改完配置后重启服务生效systemctl restart redis然后用密码登录测试redis-cli -a 你的强密码 ping返回 PONG 就说明密码设置成功服务正常工作。提示redis-cli 后面直接跟密码执行命令会留下命令历史记录。生产环境建议进入交互模式后先用 auth 命令认证或者临时设置 HISTFILE 指向空设备减少密码泄露风险。3. 源码编译安装 Redis 的完整流程3.1 下载源码包与依赖准备源码编译最大的优势是版本自由。以官方最新稳定版为例你只需要去官网找到源码包的下载地址然后 wget 下来解压就行。这一步的关键在于编译依赖要先装齐否则 configure 阶段就报错。安装编译工具链dnf install -y gcc make tar wget有些老版本 Redis 还需要 tcl 来跑测试用例如果你不打算执行 make test可以不装。编译工具是必须的我遇到过不少人卡在这一步 — 明明下载了源码执行 make 却提示 cc 命令找不到其实就是没装 gcc。下载源码包并解压wget https://download.redis.io/releases/redis-7.x.x.tar.gz tar xzf redis-7.x.x.tar.gz cd redis-7.x.x具体版本号以自己的实际需要为准7.x 是目前的主流系列稳定性和新特性都兼顾。3.2 编译安装要点进到源码目录后老版本可能需要先执行 make distclean 清理旧编译产物新版本直接从 make 开始就行make -j4-j4 是启用 4 个并行编译任务机器核数多的话编译速度会快不少。编译过程出错的话百分之九十是缺依赖回到上一步补齐再重来。编译完成得到的是二进制文件此时可以手动复制到系统目录但更省事的做法是直接用 make installmake install默认会安装到 /usr/local/bin/ 下。安装成功后同样验证版本redis-server --version3.3 配置 systemd 服务单元源码安装和 dnf 安装最大的区别就在这里系统源安装会自动生成 systemd 配置源码安装得自己写。不写服务文件也能手动启动但就没法用 systemctl 管理开机自启这在生产环境是不能接受的。先复制官方提供的配置文件到标准位置mkdir -p /etc/redis cp redis.conf /etc/redis/redis.conf然后创建 systemd 服务文件 /etc/systemd/system/redis.service内容思路如下[Unit] DescriptionRedis Server Afternetwork.target [Service] ExecStart/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop/usr/local/bin/redis-cli shutdown Restartalways Userroot Grouproot PIDFile/var/run/redis.pid [Install] WantedBymulti-user.target注意 ExecStart 里的路径要和你实际安装位置一致如果你的 redis-server 不在 /usr/local/bin/改成对应路径。写完后加载并启动systemctl daemon-reload systemctl start redis systemctl enable redis到这里源码安装的服务也能像 dnf 安装一样用 systemctl 管理了。配置文件的修改方式和前面讲的完全一样bind、密码、保护模式这些照样得设置别因为是自己编译的就跳过安全配置。4. 卸载 Redis停服、删除、清理残留4.1 备份数据与停服卸载之前最重要的不是执行删除命令而是确认你的数据有没有备份需求。Redis 的数据都保存在内存里持久化有两种方式RDB 快照和 AOF 日志。配置文件里分别对应 dbfilename 和 appendfilename 设置。查看当前持久化文件redis-cli -a 你的强密码 info persistence ls -lh /var/lib/redis/如果你确定这些数据都不需要了那直接往下走。如果有需要保留的数据先把目录下的 .rdb 和 .aof 文件复制走或者用 redis-cli 做一次 BGSAVE 强制生成最新快照后再备份。备份完成后停服务。不要直接 kill 进程要走正常关闭流程systemctl stop redis或者通过客户端命令优雅关闭redis-cli -a 你的强密码 shutdown优雅关闭会触发持久化把内存中的数据写回磁盘避免直接 kill 导致数据丢失。systemctl stop 实际也会走这一步但二者选一个就行不要重复执行。4.2 卸载软件包停服之后才是真正的卸载环节。如果你是 dnf 方式安装的执行dnf remove redis -y它会自动删除 Redis 相关软件包。卸载过程中如果提示有依赖问题加上 --setoptclean_requirements_on_remove1 再试。如果你是源码编译安装的情况不太一样源码包本身没有注册到 dnf 的包管理数据库里dnf remove 找不到它。正确做法是手动删除二进制文件rm -f /usr/local/bin/redis-server rm -f /usr/local/bin/redis-cli rm -f /usr/local/bin/redis-benchmark rm -f /usr/local/bin/redis-check-aof rm -f /usr/local/bin/redis-check-rdb rm -f /usr/local/bin/redis-sentinel同时删掉自己创建的服务文件rm -f /etc/systemd/system/redis.service systemctl daemon-reload这一步要特别注意源码安装删除二进制文件后systemd 的服务配置还残留着如果你不删服务文件systemctl status redis 会一直显示异常状态虽然实际上服务已经不存在了。4.3 清理残留文件与痕迹卸载命令只是把软件包删了残留文件才是重装时出问题的根源。我在实际工作中遇到过多次这种情况客户说“我已经卸载了 Redis”结果重装时端口冲突查了半天才发现老配置文件还在服务还在跑。需要清理的残留位置主要有这几个位置说明/etc/redis/ 或 /etc/redis.conf主配置文件/var/lib/redis/持久化数据文件RDB/AOF/var/log/redis/运行日志/var/run/redis.pidPID 文件/tmp/ 下相关临时文件临时转储文件逐项清理rm -rf /etc/redis /etc/redis.conf rm -rf /var/lib/redis rm -rf /var/log/redis rm -f /var/run/redis.pid如果卸载前没有停服Redis 进程还会占着端口。检查一下ss -lntp | grep 6379如果有残留进程用 systemctl stop redis 或 redis-cli shutdown 停掉杀干净进程再删除文件。最后确认一下 Redis 相关用户和用户组是否要保留。一般情况下不用特意清理但强迫症可以查一下id redis如果确认不需要这个用户可以一并删除但不是必须。注意清理持久化文件前一定要确认数据不再需要。RDB 和 AOF 文件删了无法恢复这点务必要有备份意识。5. 常见问题与排查实录5.1 dnf 安装时找不到 redis 包这个问题出现频率极高尤其是 CentOS 8 环境。执行 dnf install redis 提示没有匹配的包多半是模块流或者仓库源的问题。排查思路三步走dnf module list redis dnf repolist dnf makecache如果 module list 输出为空说明 AppStream 仓库没启用或者源有问题回到第一节讲的镜像源处理。如果仓库正常但 still 提示找不到试试直接指定模块dnf module install redis:6有时候默认模块流没有启用直接指定版本流反而能装上。5.2 启动失败PID 文件或权限问题启动 Redis 时报错日志里出现 Permission denied 或者 Address already in use通常有两种情况。第一种是 /var/lib/redis 目录权限不对。Redis 进程需要对该目录有读写权限否则持久化失败。解决办法chown -R redis:redis /var/lib/redis chmod 700 /var/lib/redis第二种是端口被占用。用 ss -lntp | grep 6379 查看占用进程如果确认是残留的 Redis 进程先停掉再启动新的。还有一种比较少见的Redis 6 及以上版本启动时会检查 maxmemory、protected-mode 等配置项如果你的配置文件里写了过时的参数启动会直接报错并拒绝运行。处理办法是把配置文件里旧的参数项注释或删除保留 Redis 当前版本支持的配置。5.3 卸载后重装出现数据冲突这个问题几乎都是残留文件引起的。有人卸载前没有清理 /var/lib/redis 目录重装后发现“新装”的 Redis 里居然有旧数据吓了一跳以为是版本升级自动迁移了实际上就是 RDB 文件没删干净。更隐蔽的是配置文件残留。dnf remove 通常不会删除 /etc/redis.conf重装后你改的不是新配置而是旧配置一些诡异的行为让人摸不着头脑。我的一般做法是卸载后把这些目录整体删掉再装的时候就当它是一台干净机器所有配置从零开始。5.4 redis-cli 连接超时装好 Redis 后用 redis-cli ping 一直卡住或提示超时。优先检查 bind 配置和 protected-mode如果 bind 只写了 127.0.0.1而你在另一台机器上执行 redis-cli 连接那必然超时。本地连接也超时的检查防火墙是否拦截了回环地址的流量虽然极少见但我确实遇到过本机防火墙策略把 6379 入站过滤的情况。还有一种情况是 Redis 服务根本没起来systemctl status redis 显示 failed。这种情况看日志定位问题最直接journalctl -u redis -n 100 --no-pager日志里如果有 key 的报错信息基本就是配置文件哪一项写错了对照报错行去改配置文件就行。6. 一些个人实操体会最后分享几个实际经验都是我踩过坑之后总结的习惯。第一无论生产还是测试装 Redis 第一件事就是设密码。Redis 的默认配置在保护模式下还好但一旦你为了远程访问改了 bind密码就是唯一防线。我见过不止一次没设密码的 Redis 被扫描器命中机器被拿去挖矿最后只能重装系统。第二卸载操作前养成先备份后审查的习惯。哪怕心里已经决定“数据都不要了”也花几秒钟看一眼 /var/lib/redis 下的文件大小。有时候看似没用的数据实际上是你同事在用的测试缓存删了再解释成本就高了。第三源码编译安装容易让人忽视服务文件的维护。dnf 装的 Redis 卸载后服务文件清理是自动完成的源码装的就得手动删干净。所以但凡能用 dnf 解决的环境我建议优先用 dnf省心很多。真的有版本强需求再走源码编译但一定要把服务文件所在的目录记清楚卸载时别漏掉。第四遇到问题先看日志不要反复重装。很多人一遇到 Redis 启动失败就卸载重装其实核心问题根本没解决装完还是报错。systemd 的 journalctl 日志已经把原因写得清清楚楚花三分钟看日志往往比重装半小时高效得多。这些经验算不上什么高深技巧但确实是在一次次折腾里沉淀出来的。按这个流程操作CentOS 8 上装 Redis、卸 Redis 都能少走不少弯路。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询