我想一次重新加载 cache2k 中的所有缓存条目。我使用的是 1.2.2 版。我试过使用org.cache2k.integration.CacheLoader#load方法,但它只接受一个键并返回一个值。我不喜欢一次只从数据库下载一条记录的想法。这不是最佳的。我希望使用一个数据库查询重新加载所有缓存条目。请指导实现它的推荐方法是什么。谢谢您的回答!
1 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
您可以通过以下方式指示 cache2k 重新加载所有条目:
cache.reloadAll(cache.keys(), null);
但是,在当前版本中,这会通过加载程序线程池一个一个地重新加载所有条目。目前缺少所谓的“批量加载”。已经有更多的需求了。
如果您总是批量加载全部内容,那么问题是您是否真的需要单独的缓存条目,而是缓存包含所有项目的单个地图。
使用加载程序有几个优点,例如弹性和提前刷新。如果您不需要这个并且只想用新内容填充缓存,您可以使用它cache.keys()
来获取缓存键的列表,请求数据库,然后通过更新整个缓存cache.putAll()
。
添加回答
举报
0/150
提交
取消