3

我们正在考虑为我们的应用程序实现一个缓存框架,以帮助提高我们网站的整体性能。

我们在 Websphere 6.1、Spring、Hibernate 和 Oracle 上运行。当前的重点是静态数据或在一天中变化很小但被大量使用的数据。

所以任何信息都会很棒。我已经开始了我的谷歌搜索和阅读,但想了解对社区成员有用的东西。我们感兴趣的一件事是,当下划线数据发生更改时,让系统使缓存失效的能力。

谢谢

更新:

我在 IBM 网站上看到一篇文章,其中说 Hibernate 的集群感知缓存与 WebSphere Application Server 的结合尚未确定。因此,尚未确定是否支持它们的使用。

对此有什么想法?我们在集群环境中运行。

4

5 回答 5

3

那么休眠缓存系统就是这样做的,我在休眠(和二级缓存系统)中有效且轻松地使用了ehCache

Lucene也可能是一种选择,具体取决于具体情况。Hibernate SearchCompass可以帮助解决这个问题(尽管可能需要一些主要工作)。

尽管我从未这样做过,但使用Terracotta进行复制也是一种选择。

于 2009-01-15T20:18:55.570 回答
1

Hibernate 内置了一级和二级缓存。您可以将其配置为使用 EhCache、OSCache、SwarmCache 或 C3P0——您的选择。

于 2009-01-15T20:20:11.930 回答
1

您还可以利用 WebSphere 的默认缓存(即 DynaCache)来实现二级缓存。这将允许您利用 WebSphere 缓存基础设施来管理、监控和配置您的缓存

于 2009-02-18T00:38:33.223 回答
0

我使用了 ehCache 和 OSCache,发现 OSCache 更易于配置和使用。

于 2009-01-15T20:31:13.563 回答
0

我们感兴趣的一件事是,当下划线数据发生更改时,让系统使缓存失效的能力。

据我所见,Hibernate 实际上并没有执行上述操作——来自Hibernate 的文档

当心。缓存永远不会知道另一个应用程序对持久存储所做的更改(尽管它们可能被配置为定期使缓存数据过期)。

显然,这意味着缓存没有 ESP,并且无法判断不在集群中的应用程序是否在数据库上调用了直接 DML - 但我猜你想要的是公开服务的能力旧版应用程序在更新该数据时挂钩并使缓存无效。而且,据我所知,没有关于如何做到这一点的建议。

于 2009-03-02T16:34:42.407 回答