我正在寻找有关如何在ehcache中使用此新功能后写高速缓存的指南/文档/教程?spring + jpa + ehcache + hibernate中有演示吗?
只是为了方便起见,写后缓存意味着每次我们持久化实体时,它将被写入缓存而不是正确写入数据库吗?
是的Ehcache报价后写高速缓存的事实并 不 意味着使用的Ehcache,像Hibernate任何软件,可以利用它无需修改。来自Terracotta的Hibernate Integration(请注意,这是一个非独立的文章,即pro缓存):
写后缓存 当您想到缓存时,您将得出以下缓存策略:直读缓存,直写缓存,后写缓存。 hibernate二级缓存是读写缓存 ,如果发生缓存未命中,则会从数据库中读取实体,然后将其移交给缓存以进行后续访问。 但是H2LC不是Write-Behind缓存 。使用Terracotta的磁盘持久性和异步模块,对于某些用例来实现后写式将非常有效。 目前,Hibernate只是直接写入数据库 。相反,如果将其修改为写入二级缓存和持久性异步数据库队列,这将减少延迟并显着提高吞吐量。
当您想到缓存时,您将得出以下缓存策略:直读缓存,直写缓存,后写缓存。 hibernate二级缓存是读写缓存 ,如果发生缓存未命中,则会从数据库中读取实体,然后将其移交给缓存以进行后续访问。 但是H2LC不是Write-Behind缓存 。使用Terracotta的磁盘持久性和异步模块,对于某些用例来实现后写式将非常有效。 目前,Hibernate只是直接写入数据库 。相反,如果将其修改为写入二级缓存和持久性异步数据库队列,这将减少延迟并显着提高吞吐量。
换句话说,写后缓存并不是Hibernate当前的工作方式(我可能错了,但我认为这不会在不久的将来改变)。但是随时提出一个吉拉问题:)