黑马点评技术汇总(五)缓存更新策略

一、最佳方案

1.查询数据:先查询缓存,如果缓存命中,直接返回,如果缓存未命中,则查询数据库,将数据库数据写入缓存,返回结果

2.修改数据库时: 先修改数据库,然后删除缓存,确保两者的原子性。// 因为

===============================下面是选择原因=============================

二、总方案

**内存淘汰:**redis自动进行,当redis内存达到咱们设定的max-memery的时候,会自动触发淘汰机制,淘汰掉一些不重要的数据(可以自己设置策略方式)

**超时剔除:**当我们给redis设置了过期时间ttl之后,redis会将超时的数据进行删除,方便咱们继续使用缓存

**主动更新:**我们可以手动调用方法把缓存删掉,通常用于解决缓存和数据库不一致问题

1.数据库缓存不一致解决方案

**(1)Cache Aside Pattern 人工编码方式:**缓存调用者在更新完数据库后再去更新缓存,也称之为双写方案

**(2)Read/Write Through Pattern :**由系统本身完成,数据库与缓存的问题交由系统本身去处理

**(3)Write Behind Caching Pattern :**调用者只操作缓存,其他线程去异步处理数据库,实现最终一致

我们通常采用第一种方案

假设我们每次操作数据库后,都操作缓存,但是中间如果没有人查询,那么这个更新动作实际上只有最后一次生效,中间的更新动作意义并不大,我们可以把缓存删除,等待再次查询时,将缓存中的数据加载出来

* 删除缓存还是更新缓存?

* 更新缓存:每次更新数据库都更新缓存,无效写操作较多

* **删除缓存:**更新数据库时让缓存失效,查询时再更新缓存

我们采用删除缓存解决

相关推荐
落落Plus8 小时前
浏览器缓存机制详解
javascript·缓存·浏览器缓存
心机之蛙qee10 小时前
Redis的主从、哨兵及集群
数据库·redis·缓存
qq_2975746712 小时前
RuoYi框架二次开发系列(五)性能优化、Redis缓存实战、分布式部署、接口限流与安全加固生产方案
redis·缓存·性能优化
老刘说AI16 小时前
SGLang 深度优化: Radix 缓存与复杂任务的极致吞吐
人工智能·神经网络·机器学习·缓存·架构·sglang
AI分享猿16 小时前
重度长上下文开发怎么选?先看缓存是否吃额度
缓存·ai编程
向日的葵00617 小时前
Redis会话机制vsJWT机制深度解析
数据库·redis·python·缓存·系统架构·jwt
Y38153266219 小时前
3 种 SERP 数据处理方案对比:流式 / 批处理 / 缓存
java·spring·缓存
Database_Cool_19 小时前
LLM 应用怎么省 Token、加速响应——阿里云 Tair 语义缓存实战
阿里云·缓存·云计算
三言老师19 小时前
CentOS7.9:Redis 数据持久化结构化实战教程
数据库·redis·缓存
YOU OU1 天前
Redis基础常识与命令
数据库·redis·缓存