3种应用程序层中缓存同步缓存的策略
#java #distributedsystems #backend #caching

在上一篇文章中,我们开始讨论缓存,我们谈论集体化环境中本地缓存解决方案的危险和障碍。我们还讨论了春季缓存,该缓存提供了用于在Spring Boot Projects中的应用程序层中使用缓存的抽象。

今天,我们将再次讨论CACHE,POR©m,我们将重点介绍保持缓存和同步数据层的策略。

缓存及其重要性

事实是,企业系统是自动化的,可以帮助攀登业务。这意味着业务发展越多,业务遇到的客户越多,系统性能要求就越大。我的意思是需要进行优化,并且可以应用许多许多,包括插入一层缓存。

从我们实施一层缓存的那一刻起,我们就可以享受几个好处,因为对O(1)的咨询成本的降低。如果数据库不可用,则系统将继续请求请求读取。

应确保不允许使用过时的缓存层。并且数据与真相来源同步,在这种情况下为数据库。

缓存提供商有几种无效的形式,包括在缓存期间持续时间最常见的形式。并且按存储限制,有可能定义物体的母亲能力或以字节为单位的母亲容量。

但是,我们今天讨论的是您可以使用的吨,以确保与数据层相关的缓存中存在的数据并不过时。>>>>>

战略性同步缓存

我们将知道的第一个策略被称为A端缓存,在此策略中,应用层负责管理数据层和缓存。

缓存一侧

在此策略中,应用程序层手动管理缓存和数据库。这意味着,当在银行中寻求记录时,在缓存中插入了同样的记录,从而在下一个阅读请求中可用。更新数据时也适用。

更好地了解如何观察下图,该图显示了数据查询中应用程序的行为。

Diagrama de fluxo, sobre comportamento da estratégia cache-a-side

该图表明,首先在缓存中寻求数据,就像数据不存在的响应中一样,是在数据库中进行咨询,然后将银行返回的数据插入缓存中。

是一个简单的实现,por©m,将停机时间与缓存访问混合在一起,破坏了â€âbiaoqian4的责任原理。因此,良好的实用是,编程拦截器用于隐藏缓存的访问寡妇,例如Spring Cache API。

通读

在此策略中,应用程序层将仅与缓存API通信,并且所有数据库管理羊毛将是缓存层的全部责任。该策略的优点是,现在只有一个访问数据的点,它变得更简单,对代码的写作和维护变得更加简单。

Diagrama de fluxo, sobre comportamento da estratégia read-through

上面介绍的图描述了高速缓存案件的行为。在这种情况下,系统,如果数据存在于缓存中,如果数据库中没有数据并输入缓存,则开始。

写在后面

对于 no 的情况,建议具有强大的一致性,因此建议采用此策略,因为更新是大量的。这意味着将一次执行和执行操作。

Diagrama de fluxo, sobre comportamento da estratégia write-behind

在上图中,总结了从缓存到写作的策略的行为。在此策略中,更新的操作被排队,直到执行flush(),并在交易结束时释放所有操作。

JPA持久性的上下文使用写入beahind来确保该实体的所有状态交易在执行交易结束时或从约会中释放。

包括£o

在项目上实施一层缓存允许系统获得性能和可用性,已经降低了复杂处理的成本,从而提供了更大的能力满足同时请求的能力。

por,在享受优势之前,有必要了解哪些是与数据库保持同步缓存层的最佳实践。可以使用几种策略,因为将其应用于缓存和数据库作为cache a side的情况。如果您与两个数据源一起工作很费力,则将另一个解决方案定义为管理数据层,实现Read-Through的缓存API。如果没有必要的一致性,则缓存层应对请求排列并从一次显示,因为它是Write-Behind

记住这样的决定很复杂,应根据团队,项目和技术的背景来做出。