我试图实现具有预取功能的缓存。缓存不可序列化的对象
该计划是,如果缓存条目是新的,那么它将按原样返回。 如果缓存的年龄超过设定的年龄,则会在新的线程被刷新以刷新条目时返回“旧”缓存。 如果它比它更老,它将更新条目并返回它。
这样做的计划是为了避免在用户需要等待缓存刷新时发生缓存未命中。
我有一种使用hashmap作为缓存存储的工作模式,但这看起来很脏。
所以我想用这个javax.cache.cache-api
包,我选择org.infinispan.infinispan.jcache
作为实现。 问题是,我想保存在缓存中的对象是不可序列化的,我不知道如何让inifinispan允许它们。
他们为什么不可序列化的原因是因为他们存储函数以更新缓存条目。
问题是: 你可以使用infinispan存储不可序列化的对象吗?如果是这样,如何?
或者是否有任何开箱即用的解决方案已经完成了我的工作?
不知道这个包,你可能会尝试创建一个实现包含实际对象的'Serializable'的包装器对象。这显然不会工作,如果实际的序列化发生,但应该只发生(至少在我的眼中),如果我们谈论的是由多个实例共享的缓存(如果这是这个包的东西) – Lothar
我以为是一样的,但它似乎仍然有问题。而且我已经有一个包含实际缓存值的包装器,它也存储更新函数。我试图实现'Serializable',但没有运气。 (并且没有,它不被多个实例共享) – munHunger