【问题标题】:Coherence cache | ConcurrentHashMap in, HashMap out一致性缓存 | ConcurrentHashMap in, HashMap out
【发布时间】:2010-07-16 06:43:43
【问题描述】:

我刚开始使用 Oracle 的 Coherence 缓存并注意到这一点:如果我将 ConcurrentHashMap 对象放入缓存中,当我检索它时,我可以看到它已转换为普通的 HashMap。

我能做些什么来避免这种内部转换?

【问题讨论】:

    标签: java caching oracle-coherence


    【解决方案1】:

    Java 的 ConcurrentHashMap(或其他集合类型)的等价物可能不存在于另一个平台中,因此 Coherence 缓存仅将键值对列表保留在映射中。这就是为什么你会得到一个 HashMap。

    更好的方法是基于 ConcurrentHashMap(在 Java 版本中)和您自己的序列化程序创建您自己的地图类。使用 PofWriter.writeMap 和 PofReader.readMap 方法,您可以安排返回一个 ConcurrentHashMap。如果您随后需要 .Net 版本,您可以让您的地图类使用在 .Net 中最适合的地图,并提供适当的自定义序列化程序。

    【讨论】:

      【解决方案2】:

      我想通了。我从配置 xml 中删除了 条目。现在它工作正常。但是,我认为跨平台支持可能会受到影响(例如 .net)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 1970-01-01
        • 1970-01-01
        • 2011-10-31
        相关资源
        最近更新 更多