我需要每天缓存不同的用户和应用程序数据。
上下文:
MySQL后端Java中间层使用Hibernate和Jersey我已经检查了不同的缓存技术,似乎Memcached或Redis是在用例中使用最多的技术,类似于我的--很多读写技术,比如Facebook、Twitter等等。
但是,在使用上述两个缓存系统缓存对象之前,我必须序列化它们。仅仅缓存POJO似乎是一个不必要的步骤,所以我检查了POJO缓存,无意中发现了JBOSS的Infinispan。
有谁有什么好的理由可以解释为什么我不应该在序列化和随后的反序列化中使用Infinispan over Memcached或Redis?
发布于 2016-06-01 09:13:30
当Infinispan在集群模式下工作时,或者当它不得不将数据卸载到外部存储时,它将不得不面对序列化。
好消息是:-除非它不得不去其他地方,否则您将避免任何序列化成本--它自己的序列化机制比Java的标准序列化机制(而且很好地可定制)要高效得多。
Memcached和Redis是“外部”缓存解决方案,而使用Infinispan,您可以保持相同的Java实例缓存。如果这是件好事还是坏事,取决于您的体系结构细节。
尽管通常您希望使用一种混合解决方案:根据您的in需要使用Infinispan,限制它的内存使用量,让它将不能在本地适合外部存储的内容卸载,并且很容易将额外的内容卸载到Redis、Memcached、另一个Infinispan集群或其他几个备选方案中。
您的好处是与一些流行的框架(即Hibernate)进行透明的集成,并且它可以有效地为您处理序列化--如果需要的话,以及在需要的时候,因为它可能需要在后台发生。
https://stackoverflow.com/questions/37554277
复制相似问题