2

我现在需要决定当对象的缓存达到配置的阈值时要做什么。

我应该将对象存储在索引文件中(如 JCS 提供)并在需要时从文件(文件 IO)中读取它们还是将对象存储在分布式缓存中(网络、序列化、反序列化)

我们使用 Solaris 作为操作系统。

==============================

添加更多信息。

我有这个问题,以确定我是否可以切换到分布式缓存。具有缓存的远程服务器将拥有更多内存和更好的磁盘,并且该远程服务器将仅用于缓存。

我们无法增加本地缓存对象的问题之一是,它将缓存对象存储在内存有限的 JVM 堆中(使用 32 位 JVM)。

==================================================== =======================

谢谢,我们最终选择 Coherence 作为我们的缓存产品。这提供了许多缓存配置拓扑,包括进程、远程、磁盘等。

4

7 回答 7

3

这将取决于许多因素,例如磁盘速度、网络延迟和数据量,因此一些实验可能是获得想法的最佳方式。我建议你看看http://ehcache.org/,它可能会派上用场。

于 2009-12-06T11:22:44.103 回答
2

真正知道的唯一方法是对其进行测试,但由于缓存具有良好的网络延迟,它很可能比本地磁盘访问更快。

一旦处理了足够大的缓存请求率,对本地磁盘的序列化随机访问很可能会成为问题。

于 2009-12-03T21:56:05.793 回答
1

您是否期望分布式节点将您的数据保存在内存中?我不会。

如果您不能确定分布式节点会将您的数据保存在内存中,那么在网络上保存数据将花费时间从磁盘读取数据,并通过网络发送数据。在本地保存数据只会花费时间从磁盘读取数据。

本地速度更快。

于 2009-11-23T20:23:37.250 回答
0

几乎可以肯定,与通过网络缓存数据相比,您可以更快地将数据缓存在文件中。

于 2009-06-10T18:06:16.587 回答
0

这些选项并不相互排斥,有些产品将两者结合在一起。例如,Oracle Coherence 可以提供复杂的分布式缓存服务,并在超过阈值时选择溢出到磁盘。

于 2009-12-28T11:18:30.113 回答
0

查看memcached,一个分布式内存缓存。您需要针对自己的特定用途运行性能比较,但分布式内存缓存通常可以胜过本地磁盘缓存。

于 2010-01-06T05:21:46.347 回答
-1

我不明白这个问题。您是否需要分布式缓存?只需回答此问题即可了解您需要什么。

于 2009-11-23T20:17:10.183 回答