为了账号安全,请及时绑定邮箱和手机立即绑定

一次重新加载所有 cache2k 条目

一次重新加载所有 cache2k 条目

宝慕林4294392 2023-04-26 16:32:15
我想一次重新加载 cache2k 中的所有缓存条目。我使用的是 1.2.2 版。我试过使用org.cache2k.integration.CacheLoader#load方法,但它只接受一个键并返回一个值。我不喜欢一次只从数据库下载一条记录的想法。这不是最佳的。我希望使用一个数据库查询重新加载所有缓存条目。请指导实现它的推荐方法是什么。谢谢您的回答!
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以通过以下方式指示 cache2k 重新加载所有条目:

  cache.reloadAll(cache.keys(), null);

但是,在当前版本中,这会通过加载程序线程池一个一个地重新加载所有条目。目前缺少所谓的“批量加载”。已经有更多的需求了。

如果您总是批量加载全部内容,那么问题是您是否真的需要单独的缓存条目,而是缓存包含所有项目的单个地图。

使用加载程序有几个优点,例如弹性和提前刷新。如果您不需要这个并且只想用新内容填充缓存,您可以使用它cache.keys()来获取缓存键的列表,请求数据库,然后通过更新整个缓存cache.putAll()


查看完整回答
反对 回复 2023-04-26
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信