【Redis】缓存更新策略
创始人
2024-03-03 15:03:51
0

1. 缓存更新策略综述

  1. 内存淘汰
  • 不用自己维护,利用 Redis 自己的内存淘汰机制 (内存不足时,触发策略,默认开启,可自己配置),其可在一定程度上保持数据一致性
  1. 超时剔除
  • 给数据添加 TTL,到期之后自动剔除,是最终一致性
  1. 自动更新
  • 编写业务逻辑,修改数据库时,更新缓存,一致性高,维护成本高

2. 缓存策略的选择

选择内存策略,要基于业务场景 —— 低一致性需求,高一致性需求

在这里插入图片描述

2. 主动更新策略

缓存的主动更新策略又分为以下三种:
在这里插入图片描述

3. Cache Aside Pattern

Cache Aside Patter 是我们比较常用的缓存更新策略,其由缓存调用者在更新数据库时,在业务逻辑中设置缓存更新。对 Cache Aside Pattern ,有以下三个问题比较重要。

  1. 是删除缓存还是更新缓存?
    使用更新数据库时删除缓存,下次读数据的时候再写入缓存的策略,更新缓存会产生很多不必要的写操作。
  2. 如何保证缓存与数据库的操作的同时成功或者失败
    在单体项目中很好控制,在分布式项目中,使用分布式事务解决。
  3. 先操作缓存还是先操作数据库

线程问题:使用先操作数据库,再删除缓存。先操作数据库再操作缓存,能减少发生问题的概率。

如下是两种线程不安全问题产生的场景,但是因为缓存的操作数据的速度是远远高于数据库写操作的速度的,因此先操作数据库再删除缓存,出现问题的可能性低。

在这里插入图片描述

4.代码实现

在更新代码中,加入删除缓存的逻辑即可,代码示例如下:

    @Overridepublic Result update(Shop shop) {if(shop == null){return Result.fail("店铺不能为 null");}// 更新数据库updateById(shop);// 删除缓存stringRedisTemplate.delete(CACHE_SHOP_KEY + shop.getId());return Result.ok();}

相关内容

热门资讯

三部门:不断完善学前教育成本分... 人民财讯12月23日电,国家发展改革委、教育部、财政部发布关于完善幼儿园收费政策的通知,其中提出,各...
李强签署国务院令 公布《行政执... 新华社北京12月23日电 国务院总理李强日前签署国务院令,公布《行政执法监督条例》(以下简称《条例》...
“免申即享” 央行发布一次性信... 经济参考报记者 张莫 12月22日,中国人民银行发布一次性信用修复政策有关安排,支持信用受损但积极还...
从民进80年足迹中读懂中国新型... 参会人员翻阅民进会史工作成果书籍。(《中国新闻》报 尹李梅 摄) “民进历史犹如奔流不息的长河,过...
多所高校改革学业评价制度,弱化... 近日,河南大学正式出台2025级本科生成绩与学分管理新规,其改革目标在于鼓励学术探索,缓解过度竞争。...
东华科技:公司财务总监、总法律... 每经AI快讯,东华科技(SZ 002140,收盘价:11.47元)12月23日晚间发布公告称,202...
融资租赁合同纠纷调解结案 宁新... 12月23日,宁新新材(920719)发布公告,因与远东国际融资租赁有限公司的融资租赁合同纠纷,公司...
湖南白银:金融借款纠纷案终审胜... 12月23日,湖南白银(002716)发布公告,近日公司银行账户部分资金解除冻结。此前,因与曹永德、...
三部门:完善幼儿园收费政策 国家发展改革委 教育部 财政部关于 完善幼儿园收费政策的通知 发改价格〔2025〕1644号 各省、...
多政策护航 交通领域消费场景不... 今天(12月23日),国务院新闻办公室举行新闻发布会,交通运输部副部长李扬表示,正在推进新的交通运输...