我最近拿了一个旧的网络应用程序。应用程序将在初始时将大量对象保存到Ehcache中。然后从缓存中获取对象。现在,这个对象已经增加了很多次。应用程序中的Ehcache无法满足要求。因此,我们考虑使用分布式缓存。我们将设置一些策略,让对象保存在不同的缓存服务器中。 Redis和Hazelcast都很好。问题是,Redis和Hazelcast与之前的Ehcache相比,Redis和Hazelcast必须序列化对象。可能会消耗更多时间。 哪个更好? 或者没有其他更好的选择吗?
提前致谢。
答案 0 :(得分:1)
您有什么要求? Hazelcast具有可插拔的序列化,并且有像FlatBuffers这样的序列化库,如果需要的话,它们会非常快。
如果您以Java为中心,Hazelcast是理想的选择,当然如果您使用的是Hazelcast Enterprise,也可以通过.Net CLR语言访问Hazelcast。
Hazelcast不仅仅是一个简单的分布式缓存,您还可以利用群集中的分布式CPU并直接在网格中执行流程,从而实现非常高的性能。
如果你是多语言而且不需要在分布式数据(内存执行器服务,mapreduce或入口处理器)之上执行代码,那么Redis就有意义了。
答案 1 :(得分:0)
看一下Redisson - 基于Redis的内存数据网格是Ehcache的一个很好的选择。提供大量数据序列化编解码器,如:
Jackson JSON
,Avro
,Smile
,CBOR
,MsgPack
,Amazon Ion
,Kryo
,JDK Serialization
,LZ4
和Snappy
。
它还允许使用Read-through
,Write-through
和Write-behind
策略将地图数据与Redis商店一起存储在外部存储中。
提供分布式MapReduce和Executor / Scheduler服务。