本文学习redis系列之缓存预热、缓存更新、缓存降级,其中重点理解缓存更新

1.缓存预热

预先将热点数据加载到缓存系统中,这样系统上线后,用户访问会优先缓存查询,降低数据库查询压力

2.缓存更新

缓存更新存在四种经典的模式:Cache Aside、Read Through、Write Through、Write Behind Caching

2.1 Cache Aside

这是最常用的模式

  • 更新时,先把数据存到数据库中,成功后,再让缓存失效
  • 查询时,如果命中缓存则返回,如果未命中,则把数据读出来后放到缓存中返回
2.2 Read Through

在查询操作中更新缓存。当缓存失效(过期或LRU换出)时,Cache Aside由调用方负责把数据载入缓存,而Read Through由Cache自己来加载,对应用方透明

2.3 Write Through

在更新操作中更新缓存。当数据更新时,如果未命中缓存,则直接更新数据库,然后直接返回,如果命中缓存,则更新缓存,Cache自己同步更新数据库

2.4 Write Behind Caching

Write Behind又叫Write Back,是Linux文件系统的Page Cache的算法。
Write Behind在更新数据的时候,只更新缓存,不更新数据库,而缓存会异步批量更新数据库

ps:先删除缓存,后更新数据库,再把数据装载至缓存存在的问题

试想,两个并发操作,一个更新操作,另一个查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,缓存中的数据是老的脏数据,并且会一直脏下去

3.缓存降级

当访问量剧增、服务出现问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务,这时就需要降级,防止redis服务故障导致缓存雪崩。如双十一服务降级,地址无法修改仅允许默认地址下单


版权声明:本文为SJshenjian原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/SJshenjian/article/details/128194139