Java 缓存的可用性

Java 缓存的可用性,java,caching,concurrency,map,Java,Caching,Concurrency,Map,在我的应用程序中,我从数据库中获取其

在我的应用程序中,我从数据库中获取其
键值,以
的形式构建缓存
现在我必须在这个缓存中添加一些东西,我现在要做的是更新或将这个新值插入数据库并刷新缓存,这样它就应该由更新的数据库填充。
现在我要做的是-
1.我正在使用两个
映射
缓存1
缓存2
,因此当一个缓存在使用时,另一个缓存将是空缓存
2。当我想刷新缓存时,我开始填充空缓存,当它完成时,我清除先前的缓存。
3.所有数据都将由此新缓存提供
我只想知道我的方法是否合适,或者我可以做其他更有效率的事情。因为我觉得我不需要两张地图来做这件事,但我认为如果我只使用一张地图,它会影响数据的准确性

编辑:
在回答问题之前,您需要了解有关应用程序的一些信息。
1.数据既不是很大也不是很小。
2.从数据库填充缓存大约需要2-3分钟。
3.刷新次数不多,一天只需要一两次。

4.应用程序运行24小时(服务器每天清晨重启一次)
您可以尝试的东西是EHCache,这里您可以找到一个例子:

您可以尝试的东西是EHCache,这里您可以找到一个例子:

如果您想要实现一个简单的缓存,您可以使用SoftReference。这是一种比使用HashMap更好的实现缓存的方法

当您存储对HashMap的引用时,它存储对对象的强引用;当您将对象设置为
null
时,它仍然不会被垃圾收集,因为映射中存在对它的强引用

有关缓存的更多信息,请访问以下链接:

如果您想实现一个简单的缓存,也可以使用SoftReference。这是一种比使用HashMap更好的实现缓存的方法

当您存储对HashMap的引用时,它存储对对象的强引用;当您将对象设置为
null
时,它仍然不会被垃圾收集,因为映射中存在对它的强引用

有关缓存的更多信息,请访问以下链接:

考虑到您没有提到实际需求、数据大小、刷新频率、应用程序的生命周期等,这里没有人有资格回答这个问题。考虑到您没有提到实际需求、数据大小、刷新频率,应用程序的生命周期等等,等等,等等,这里没有人有资格回答这个问题。ehcache可能使用相同的技术ehcache可能使用相同的技术