在内存缓存中使用 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。您可以在其中放置内部地图对象,它们将根据您的需要自动过期。
目前有 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。您可以在其中放置内部地图对象,它们将根据您的需要自动过期。