我决定使用infinispan分布式网格将我的应用程序扩展到支持集群,但是在使用这种共享资源时遇到了限制。 如何检索分布式缓存中的所有值或键?我之所以这样问,是因为在他们的文档中不推荐所有的集合方法在生产中运行(意思是keySet())。 现在我有一个带有键/值对的本地存储桶/缓存,但是为了处理我需要检索密钥并迭代整个集合的值。 设置set = cache.keySet();
当在本地缓存中有大量条目时,keySet()返回一个副本,这对内存来说是一个很大的负载。 我尝试使用查询功能,但如果我想找到值而有一些网络调用,我不需要它。此外,查询功能不支持复杂的过滤器。 你知道在生产中使用infinispan时哪种方法最好吗?
由于这是一个实验阶段,我使用的是最后一个infinispan版本。
非常感谢。
答案 0 :(得分:2)
Map / Reduce功能允许您迭代存储的所有条目,并且还可以迁移数据所在的逻辑,因此不会增加很多负担。
答案 1 :(得分:0)
我们在生产中使用keySet()仅供参考。在低数据负载下,性能似乎不是一个大问题,但当然您应该非常小心地使用这些方法,因为它们可能会对您使用缓存的方式产生很大的性能影响。远程缓存查询对我来说似乎非常方便。