☰
本地Redis 脏缓存引发页面展示旧数据问题处理
2026/10/17 2:40:01 网站建设 项目流程

一、业务背景

后端数据库数据已经更新完成,但是前端页面展示的依然是旧数据,和数据库真实内容不一致。开发说:需要清理 Redis 缓存。

二、Redis 简单科普

Redis 是一款内存型键值对数据库,数据优先放在内存读写,访问速度极高,同时支持把数据持久化落盘保存。

和关系型数据库的区别:

  1. MySQL / SQL Server / Oracle:属于磁盘型关系数据库,保存业务真实、持久化的核心业务数据,承担业务的增删改查,磁盘 IO 读写相对慢。
  2. Redis:内存数据库,不做主业务数据存储,主要做缓存,读写速度极快。
  3. 同一个 Redis 服务,虚拟划分出 16 个独立小数据库,即16 个逻辑 db(db0‑db15),互相隔离数据。

三、解决方案

方案一:RDM 可视化客户端清理

环境:本地 Redis,使用 Redis Desktop Manager 工具。

  1. 新建 Redis 连接,地址填写127.0.0.1,端口6379,填写 Redis 密码。
  2. 测试连接成功后,左侧树列表可以看到 db0~db15,括号数字代表当前库 key 数量。
  3. 确认项目 yml 配置jedis.database的值,本次业务使用db4。
  4. 选中db4,点击工具栏【清空数据库】小扫把图标,确认执行。
  5. 执行完成后 db4 后面数字变为 0,代表该库缓存全部清空。
  6. 无需重启Redis,若数据没有立即生效,再重启下业务后端服务。

方案二:命令行方式清理(Windows cmd 操作本地 Redis)

一行简写命令,注意:redis-cli中间没有空格。

redis-cli -n 4 FLUSHDB

总结:Redis 就是高速临时副本仓库,用来减轻底层数据库(MySQL、SQL Server、Oracle 等各类关系型数据库)的访问压力,提升接口响应速度;既然是副本,底层数据库真实数据修改后,就需要清理掉 Redis 里过期的副本,否则页面读到旧数据。

延伸思考

为什么会出现脏缓存?

  1. 更新业务数据时,代码没有同步删除 / 更新 Redis 缓存。
  2. 程序异常,缓存过期时间设置过大。

根本修复需要开发完善代码逻辑,本次只是测试环境应急清理缓存手段。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询