常见的数据库缓存策略模型

超级欧派课程 2024-03-10 05:22:13

数据库缓存是一种价值百万的技术,你不能忽视它。它甚至可以掩盖数据库的缺点,帮助你的应用程序发挥出最佳性能。那么,有什么问题呢?有多种策略,你必须选择正确的策略。

缓存优先策略

在这种策略中,缓存位于数据库之前。这里的工作原理是:当有数据请求时,应用程序首先检查缓存。如果有缓存命中,数据将从缓存返回,流程结束。如果发生缓存未命中,应用程序查询 DB 并返回数据。同时,它还将缺失的数据存储在缓存中以供将来请求使用。

这种策略的优点是它非常适合读取密集型工作负载。此外,由于缓存失败不会削弱系统,因此具有更好的弹性。但该策略也存在一些缺点,例如缓存和数据库之间可能存在一致性问题。

读通策略

该策略将缓存置于应用程序和数据库之间。这里的工作原理是:当应用程序需要读取数据时,它会首先检查缓存中是否存在相应的数据。如果缓存中存在数据,则直接从缓存中获取数据并返回给应用程序;如果缓存中不存在数据,则缓存会从数据库中获取缺失的数据,并将其返回给应用程序。这种策略的优点是,应用程序不必担心从数据库或缓存中提取数据。缓存负责处理它。但该策略也存在一些缺点,例如缓存和数据库之间可能存在一致性问题,并且需要为每个全新的读取请求访问数据库。

缓存写穿透策略

该策略与缓存优先策略类似,但在写入操作方面增加了一些上下文。在该策略中,所有写入都转到数据库,读取的数据进入缓存。对于缓存未命中,应用程序从 DB 读取并更新缓存以供下次使用。该策略非常适合仅写入一次且很少更新的数据(例如博客文章或静态网站)。

写入回写策略

写入回写策略试图解决读通策略的问题。而不是将数据写入 DB,应用程序首先将数据写入缓存。然后缓存立即将数据写入 DB。这里的关键是“立即”。这种策略的优点是,缓存将始终具有已写入的数据。新的读取请求不会经历延迟,因为缓存会从主 DB 请求数据。缺点是由于数据必须先写入缓存,然后再写入 DB,因此写入延迟会增加。

写入回写策略

它是写入回写策略的变体。有一个关键区别……

在写入回写中,应用程序直接写入缓存。然而,缓存不会立即写入数据库,但在延迟之后。这种策略的优点是,如果你有写入密集型工作负载,对缓存的压力会减少。对 DB 的请求被批处理,并且整体写入性能得到改善。缺点是如果缓存失败,可能会导致可能的数据丢失。

那么,你是否使用数据库缓存?

如果是,你最喜欢的数据库缓存策略是什么?

更多

了解一线微服务治理经验,快速掌握大厂微服务治理最佳实践,可以关注下我的微服务治理专栏,最新微服务治理一线技术都会第一时间更新到专栏。

0 阅读:0

超级欧派课程

简介:感谢大家的关注