J2cache手动清除缓存时间超长

发布于 2022-03-08 05:23:45 字数 788 浏览 823 评论 1

在手动调用cacheChannel.clear(region)疑陷入死循环,跟踪代码发现RedisGenericCache类里面的keys()方法在符合条件时无法跳出循环具体方法为:
private Collection<String> keys(BinaryJedisCommands cmd) {
   Collection<String> keys = new ArrayList<>();
   String cursor = "0";
   ScanParams params = new ScanParams();
   params.match(this.region + ":*").count(scanCount);
   Collection<String> partKeys = null;
   do {
      ScanResult<String> scanResult = ((MultiKeyCommands) cmd).scan(cursor, params);
      partKeys = scanResult.getResult();
      if(partKeys != null ) {
         keys.addAll(partKeys);
         cursor = scanResult.getStringCursor();
      }
   }while(partKeys != null && partKeys.size() != 0);
   return keys;
}

我跟踪时partKeys.size=6  环境springboot1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兮颜 2022-03-11 04:54:44

使用上,感觉良好,未发现以上现象

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文