【发布时间】:2012-02-10 10:18:46
【问题描述】:
我想在我的应用程序中使用Map 作为小型数据库“缓存”的一种形式。
我认为最好使用类似的东西:
ConcurrentHashMap<K,Callable<V>>
这样我就可以为多种数据库对象提供一个缓存(而不是每种数据库对象都有一个缓存,即`ConcurrentHashMap<K,V>,其中V 是某个特定对象)。
我现在的问题(假设上述所有想法都是合理的)是如何在从数据库启动时预加载此缓存?
我的意思是,如果我需要缓存中的某些东西并且不存在可调用对象,那么可调用对象将第一次得到它并在下一个get 中准备好它。
但是,如果我使用可调用对象,如何预加载缓存?
注意:我对使用某些库不感兴趣,因为我的需求很小。
【问题讨论】:
-
我真的不明白你打算如何在这里使用可调用对象。 Callable 只是一个接口;您将如何实施?
-
我将使用
Callable作为值,如果key不在缓存中,callable将执行 sql 查询以第一次获取它。下一个查询将成功
标签: java database multithreading concurrency map