温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何更新Cache缓存

发布时间:2026-08-30 08:40:44 来源:亿速云 阅读:90 作者:小樊 栏目:数据库

“更新缓存(Cache)”要看具体场景/技术栈。我按最常用的情况给你一个通用思路 + 对应示例,你可以直接对照使用。


一、通用缓存更新策略(重点)

更新缓存通常有 4 种常见方式:

1️⃣ Cache Aside(最常用 ✅)

流程:

  1. 更新数据库
  2. 删除缓存(而非更新缓存)

优点: 简单、安全
缺点: 短时间内可能有脏数据

写请求:
1. update DB
2. delete cache

读请求:
1. read cache
2. cache miss → read DB → write cache

推荐方案


2️⃣ 先更新缓存,再更新数据库

❌ 不推荐
原因:缓存更新成功,数据库失败会导致数据不一致


3️⃣ 定时刷新缓存

适合:

  • 统计数据
  • 配置信息
  • 非实时数据
定时任务:
- 从 DB 读取最新数据
- 覆盖缓存

4️⃣ 订阅数据库变更(高级)

✅ 一致性高,但实现复杂


二、常见技术栈示例

✅ Redis 缓存更新

1. 删除缓存(推荐)

DEL user:1

或(带过期):

SETEX user:1 300 "new_value"

2. 更新缓存

SET user:1 "new_value"

✅ Java(Spring Boot)缓存更新

使用 @CacheEvict

@CacheEvict(value = "userCache", key = "#id")
public void updateUser(Long id, User user) {
    userMapper.update(user);
}

查询时自动缓存

@Cacheable(value = "userCache", key = "#id")
public User getUser(Long id) {
    return userMapper.selectById(id);
}

✅ 前端缓存更新(浏览器 / HTTP)

1. 强制刷新

  • Ctrl + F5
  • 禁用缓存(DevTools → Network)

2. 更新资源版本

<script src="app.js?v=2"></script>

3. Service Worker 更新

self.skipWaiting();

CDN 缓存更新

  • 刷新 URL
  • 刷新目录
  • 修改文件名(推荐)

三、如何选择更新方式?

场景 推荐方式
数据库 + Redis Cache Aside
配置类缓存 定时刷新
实时性要求高 Binlog / MQ
前端静态资源 版本号 / 文件名

四、常见坑 ⚠️

  • ❌ 先更新缓存再更新数据库
  • ❌ 缓存和数据库双写
  • ❌ 缓存永远不过期
  • ❌ 高并发下缓存击穿

五、如果你愿意,我可以更具体地帮你

你可以直接告诉我:

  • 用什么缓存?(Redis / 本地缓存 / 浏览器 / CDN)
  • 什么语言 / 框架?(Java / Spring / Node / Vue / React)
  • 更新还是删除缓存?

我可以给你针对你项目的完整方案

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI