在内存缓存中使用 concurrentHashmap

In memory cache using concurrentHashmap

目前有 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 作为内部映射,这将在不牺牲线程安全的情况下达到目的。

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