我正在使用 Jersey 开发一个 RESTful Web 服务,并且我将使用一个简单的对象缓存,该缓存通过基于计时器从数据库中检索记录来更新其数据。我计划使用 HashMap 将检索到的数据存储在此缓存中,但我的问题是更新此 HashMap 的最佳实践是什么。
现在我的选择是使 HashMap 不稳定,并且每当有更新时,创建一个新的 HashMap,然后在完成时分配它。我还可以将 HashMap 包装在同步块(synchronized block)中,或者在直接更新 HashMap 变量时使用 ReentrantReadWriteLock。我也考虑过使用 ConcurrentHashMap ,它似乎有一些性能优势。使用其中一种方法与另一种方法相比是否存在显着的性能差异和/或缺点?
此外,当用户通过我的 Web 服务 API 更新或插入记录时,最佳实践是在我将记录保存到数据库后直接更新本地缓存还是强制缓存执行另一次大数据检索?
最佳答案
关于java - 更新对象缓存 HashMap 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20272090/