diff --git a/redis-cache/src/main/java/ink/wgink/redis/cache/manager/files/RedisFilesShowCodeService.java b/redis-cache/src/main/java/ink/wgink/redis/cache/manager/files/RedisFilesShowCodeService.java index 0f135188..cd531f4f 100644 --- a/redis-cache/src/main/java/ink/wgink/redis/cache/manager/files/RedisFilesShowCodeService.java +++ b/redis-cache/src/main/java/ink/wgink/redis/cache/manager/files/RedisFilesShowCodeService.java @@ -13,6 +13,7 @@ import org.springframework.stereotype.Component; import java.util.HashSet; import java.util.Set; +import java.util.concurrent.TimeUnit; /** * @ClassName: RedisFilesShowCodeServiceImpl @@ -36,12 +37,12 @@ public class RedisFilesShowCodeService implements IFilesShowCodeService { @Override public void clearTimeoutShowCode() { - Set keySet = redisTemplate.keys(FILE_SHOW_CODE_KEY); + Set keySet = redisTemplate.keys(FILE_SHOW_CODE_KEY + "**"); long currentTimeMillis = System.currentTimeMillis(); Set clearKeys = new HashSet<>(16); long clearTimeoutShowCodeCount = 0; for (String key : keySet) { - FilesShowCode showCode = getShowCode(key); + FilesShowCode showCode = (FilesShowCode) redisTemplate.opsForValue().get(key); if (currentTimeMillis - showCode.getLatestUpdateTime() > SHOW_CODE_TIMEOUT_MILLIS) { clearKeys.add(FILE_SHOW_CODE_KEY + showCode.getFileId()); } @@ -66,8 +67,7 @@ public class RedisFilesShowCodeService implements IFilesShowCodeService { public synchronized FilesShowCode getShowCode(String fileId) { FilesShowCode showCode = (FilesShowCode) redisTemplate.opsForValue().get(FILE_SHOW_CODE_KEY + fileId); if (showCode != null) { - showCode.setLatestUpdateTime(System.currentTimeMillis()); - redisTemplate.opsForValue().set(FILE_SHOW_CODE_KEY + fileId, showCode); + redisTemplate.opsForValue().set(FILE_SHOW_CODE_KEY + fileId, showCode, 1, TimeUnit.MINUTES); } return showCode; }