2012-11-19 28 views
0

我有数以百万计的对象,我需要将它们保存到缓存中。为了减少这些对象的大小以及序列化/反序列化的时间,我使用protobuf对象而不是POJO,然后将它们作为字节数组保存到Ehcache中。但Ehcache会将protobuf字节数组放入Ehcache的对象中,然后将该对象序列化到内存中,所以使用protobuf的优势已经消失。如何序列化protobuf对象到Ehcache?

我可以直接将protobuf对象的字节表示保存到Ehcache中吗?

回答

0

当你说“Ehcache会把protobuf字节数组放到Ehcache的对象中”时,我猜你指的是net.sf.ehcache.Element,对吧?但是“然后将该对象序列化到内存中”,您在这里意味着什么? 只是为了澄清,Ehcache不会序列化任何要存储在堆上的东西。如果你谈论offHeap存储,那么是的东西被序列化。但是,如果你存储字节数组,序列化这些值是很简单的。此外,你不应该担心内部数据结构序列化,这些都是专门处理非常,即使你可以在那里使用protobuf,你也不会获得任何东西。

但是,对于使用protobuf进行域实例与纯Java序列化的所有好处,您都不会松懈。