【发布时间】:2016-07-07 12:16:16
【问题描述】:
我有一个休息 api,它将记录插入到数据库中,id 为 entityId。我有一个保存 entityId 和实体对象的 HashMap,它在这里充当缓存。
在插入实体并更新缓存(HashMap)后,当我进行查找时,有时无法从缓存中找到 id。
注意:- 我正在循环运行其余 api 并进行负载测试以验证对象始终存在于缓存中
我们非常感谢这方面的任何帮助。无法从缓存中找到 id 可能是什么原因。
【问题讨论】:
-
是 ConcurrentHashMap 吗?上课范围是什么?您是否在更新缓存后进行日志记录?如果是,你能看到 id 吗?
-
是的,当我进行日志记录时,我看到地图中存在最新值。但是我尝试使用 ma.getValues() 方法获取新添加的值没有反映的值。
-
当我从同一张地图上进行第二次查找时,我可以看到该值大部分时间都存在。
-
我尝试过同时使用 HashMap 和 ConcurrentHashMap
标签: java multithreading concurrency hashmap thread-safety