在内存缓存中使用concurrentHashmap

时间:2015-05-07 11:43:01

标签: java caching concurrenthashmap linkedhashmap

目前

6。

我在我的java内存中创建一个地图,以保留最后的过时数据。 我使用concurrenthashmap达到了目的。用例如下:

static ConcurrentHashMap<String, Map<Long, Map<String, Object>>> concurrentCache = new ConcurrentHashMap<String, Map<Long, Map<String, Object>>>();

如您所见,并发哈希映射包含一个键n映射。 样本将是这样的

    {
        firstkeyinconcurrentmap={
            1430997000000={
                HOST=xyz.com,
                DATA={
                    47187219={
                        COUNT=1048
                    },
                    47186744={
                        COUNT=802
                    }
                }
            }
        },
        secondkeyinconcurrentmap={
            1430994600000={
                HOST=xyz.com,
                DATA={
                    47186744={
                        COUNT=7634
                    },
                    47186593={
                        COUNT=4680
                    }
                }
            }
        }
    }

如果您看到内部地图键是时间戳。我希望如果我可以在这个内部地图上使用一些驱逐政策,以便在特定时间之后钥匙将过期。 外部映射是并发映射以具有线程安全性。 您能否建议我使用linkedhashmap作为内部地图,以达到目的而不牺牲线程安全性。

1 个答案:

答案 0 :(得分:1)

看看ExpiringMap。您可以将内部地图对象放入其中,并且它们将根据您的需要自动过期。