缓存策略

提高系统性能的最简单也最流行的方法之一其实就是使用缓存。我们引入缓存,相当于对数据进行了复制。每当系统数据更新时,保持缓存和数据源(如 MySQL 数据库)同步至关重要

最常见的4种缓存策略
  • Cache-Aside
  • Read-Through
  • Write-Through
  • Write-Behind
一、Cache-Aside 策略

1、Cache-Aside 可能是最常用的缓存策略。在这种策略下,应用程序(Application)会与缓存(Cache)和数据源(Data Source)进行通信,应用程序会在命中数据源之前先检查缓存。
image.png

2、适合“读多”的应用场景
3、不能保证数据存储和缓存之间的一致性,需要配合使用其它策略来更新或使缓存无效。
4、首次请求数据时,总是会导致缓存未命中,这种情况下需要额外的时间来将数据加载到缓存中。为了解决这个问题,开发人员可以通过使用一些方法对数据进行“预热”。

二、Read-Through 策略

和上面的\color{#ff00ff}{Cache-Aside 策略}相似,只是中间加了一层,将查询缓存还是数据源的工作都转移到加的这一层上

image.png

\color{#ff00ff}{Cache-Aside 策略}相比,区别是:

  • 在 Cache-Aside 中,应用程序负责从数据源中获取数据并更新到缓存。
  • 而在 Read-Through 中,此逻辑通常是由独立的缓存提供程序支持。
三、Write-Through 策略

Write-Through 策略下,当发生数据更新(Write)时,\color{#ff00ff}{缓存提供程序 Cache Provider} 负责更新底层数据源和缓存。缓存与数据源保持一致,并且写入时始终通过抽象缓存层到达数据源。

image.png

由于需要将数据同步写入缓存和数据源,因此数据写入速度较慢。但是,当与 Read-Through 配合使用时,我们将获得 Read-Through 的所有好处,并且还可以获得数据一致性保证,从而使我们免于使用缓存失效技术。

四、Write-Behind 策略

如果没有强一致性要求,我们可以简单地使缓存的更新请求入队,并且定期将其 flush 刷新到数据存储中。

image.png

http缓存

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容