Java 如果我只需要缓存POJO,那么在静态类上使用Infinispan之类的缓存技术有什么好处?

Java 如果我只需要缓存POJO,那么在静态类上使用Infinispan之类的缓存技术有什么好处?,java,caching,infinispan,Java,Caching,Infinispan,如果我只需要缓存POJO来保存会话信息,那么使用一些单独的技术来缓存它们(如Infinispan)而不是仅仅使用静态类来存储和检索它们有什么好处?基本上,Infinispan是一个分布式的键值数据存储,因此,如果你在一台运行infinispan的机器上放置一些东西,那么在其他机器上也会得到相同的值 静态类只能在同一台机器上工作。当然也有静态的限制(例如,未定义的生命周期,坏的可测试性)等等,但这是另一回事 如果您需要在单机中实现缓存,那么就不需要infinispan(或Redis、或Hazelc

如果我只需要缓存POJO来保存会话信息,那么使用一些单独的技术来缓存它们(如
Infinispan
)而不是仅仅使用静态类来存储和检索它们有什么好处?

基本上,Infinispan是一个分布式的键值数据存储,因此,如果你在一台运行infinispan的机器上放置一些东西,那么在其他机器上也会得到相同的值

静态类只能在同一台机器上工作。当然也有静态的限制(例如,未定义的生命周期,坏的可测试性)等等,但这是另一回事

如果您需要在单机中实现缓存,那么就不需要infinispan(或Redis、或Hazelcast或……有很多解决方案)。
相反,你可以找到适合你需要的。这里还有其他可能的解决方案。

所以我在静态类上使用guava缓存的原因是因为静态类有一些限制,例如未定义的生命周期和糟糕的可测试性?这是唯一的原因,或者说是最重要的原因,关于这两种选择在效果上的差异?不完全是。当你谈论缓存时,你会使用“命中/未命中”等概念。缓存不仅仅是将所有内容存储在内存中,它更为复杂。您可以自己实现缓存功能,也可以使用其他人已经创建的经过良好测试且分布广泛的解决方案(如guava cache)。在任何情况下,如果您的应用程序不是分布式的,Infinispan都是一种过度的技术。我认为Infinispan可以在本地以分布式方式运行。你为什么不在回答中把它列为一个选项,而不是番石榴呢?我没说你不能运行它。实际上,您可以为一个应用程序运行,但这都是关于分布式的,它有网络同步算法等等。我想说的是,对于一台服务器来说,这是一种过度的杀伤力。如果在我的web应用程序中有新闻文章,而每一篇新闻文章都有投票记录呢。
Infinispan
如果我缓存了一篇新闻文章,并且有两个人试图同时对这篇新闻文章进行投票,你会帮我吗?@Kayaman感谢你对我问题的非建设性回答。没有它我们怎么办you@Kayaman真正地一个糟糕的问题?首先,你可以完全不回应,但很明显,你更愿意为你的非建设性意见寻求确认,而不是真正的建设性意见。我觉得有人想在他们的生活中得到更多的关注?剧透是你。第二,你是谁?你是问题大师吗?没有人会在意你认为一个问题是好是坏,这是一个主观的衡量标准,你不妨把它留给自己,因为它除了暴露分享它的人有多么无知之外,完全没有用