2012-11-28 37 views
1

我决定使用infinispan分布式网格来将我的应用程序扩展到支持群集,但是我在使用这种共享资源时遇到了限制。 如何检索分布式缓存中的所有值或键?我问这是因为在他们的文档中,所有的收集方法都不推荐用于生产运行(意思是keySet())。 现在我有一个本地存储桶/缓存与配对键/值,但为了处理我需要检索的密钥和遍历整个集合的值。 Set set = cache.keySet();Infinispan keyset()不适合生产

当本地缓存中有大量条目时,keySet()会返回一个副本,这对内存来说是一个沉重的负担。 我试图使用查询功能,但有一些网络调用,如果我想找到值,我不需要。查询功能也不支持复杂的过滤器。 您是否知道在生产中使用infinispan时哪种方法是最好的方法?

由于这是一个实验阶段,我正在使用最后的infinispan版本。

非常感谢。

回答

2

Map/Reduce功能允许您迭代所有存储的条目并迁移数据所在的逻辑,所以不会增加很多负担。

+0

谢谢。我将尝试将Map/Reduce模型适用于我的应用程序。 – Ramona

0

我们在生产中使用keySet()仅用于提供信息。在低数据负载下性能似乎并不是一个大问题,但是当然,您应该非常小心地使用这些方法,因为它们可能会对性能造成很大影响,具体取决于您如何使用高速缓存。远程缓存查询对我来说似乎是一个非常方便的功能。