J2cache手动清除缓存时间超长
在手动调用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用上,感觉良好,未发现以上现象