5

我正在寻找有关如何在 ehcache 中使用此新功能 write-behind-cache 的指南/文档/教程?spring+jpa+ehcache+hibernate有没有demo?

只是为了澄清,write-behind-cache 意味着每次我们持久化实体时,它都会被写入缓存而不是数据库,对吗?

4

3 回答 3

5

Ehcache 提供 Write-Behind Caching 的事实并不意味着任何使用 Ehcache 的软件,如 Hibernate,都可以在不修改的情况下利用它。来自Terracotta 的 Hibernate Integration(请注意,这是一个非独立的帖子,即专业缓存):

后写缓存

当你想到缓存时,你会想到这些缓存策略:Read-Through Caching、Write-Through Caching、Write-Behind Caching。Hibernate 二级缓存是 Read-Write-Through Cache,如果发生缓存未命中,则从数据库中读取实体,然后将其移交给缓存以供后续访问。但是 H2LC 不是 Write-Behind 缓存。使用 Terracotta 的磁盘持久性和异步模块,对于某些用例实现后写将非常有效。目前 Hibernate 只是直接写入数据库。相反,如果将其修改为写入二级缓存和持久异步数据库队列,这将减少延迟并显着提高吞吐量。

换句话说,后写缓存并不是 Hibernate 当前的工作方式(我可能错了,但我认为这在不久的将来不会改变)。但是请随时提出Jira问题 :)

于 2010-05-12T13:37:30.167 回答
3

http://www.infoq.com/news/2010/05/ehcache-2.0

Ehcache 2.0 引入了 write-through 和 write-behind 缓存。应用程序使用直写缓存模式将数据写入缓存,从而导致写入底层资源(例如数据库)。缓存充当底层资源的外观。后写缓存模式使用相同的客户端 API,但写入是异步发生的。作为新 Ehcache API 的一部分支持的 write-behind 缓存功能与数据库更新的异步批处理一起使用。

于 2010-05-12T09:18:14.580 回答
0

我帮不了你,只是想我会提到GigaSpaces

于 2010-05-12T11:35:56.533 回答