猿问

一次重新加载所有 cache2k 条目

我想一次重新加载 cache2k 中的所有缓存条目。我使用的是 1.2.2 版。

我试过使用org.cache2k.integration.CacheLoader#load方法,但它只接受一个键并返回一个值。我不喜欢一次只从数据库下载一条记录的想法。这不是最佳的。

我希望使用一个数据库查询重新加载所有缓存条目。请指导实现它的推荐方法是什么。

谢谢您的回答!


宝慕林4294392
浏览 110回答 1
1回答

慕盖茨4494581

您可以通过以下方式指示 cache2k 重新加载所有条目:  cache.reloadAll(cache.keys(), null);但是,在当前版本中,这会通过加载程序线程池一个一个地重新加载所有条目。目前缺少所谓的“批量加载”。已经有更多的需求了。如果您总是批量加载全部内容,那么问题是您是否真的需要单独的缓存条目,而是缓存包含所有项目的单个地图。使用加载程序有几个优点,例如弹性和提前刷新。如果您不需要这个并且只想用新内容填充缓存,您可以使用它cache.keys()来获取缓存键的列表,请求数据库,然后通过更新整个缓存cache.putAll()。
随时随地看视频慕课网APP

相关分类

Java
我要回答