Skip to content

Commit f9f843b

Browse files
authored
Merge pull request #88 from Boyuan-IT-Club/Red_Moon
设置更完善的日志,抽离出redis工具类
2 parents 9375404 + 5d25445 commit f9f843b

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package club.boyuan.official.utils;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.data.redis.core.RedisTemplate;
7+
import org.springframework.stereotype.Component;
8+
9+
import java.util.Set;
10+
11+
/**
12+
* Redis工具类,提供缓存管理功能
13+
*/
14+
@Component
15+
public class RedisUtil {
16+
17+
private static final Logger logger = LoggerFactory.getLogger(RedisUtil.class);
18+
19+
@Autowired
20+
private RedisTemplate<String, Object> redisTemplate;
21+
22+
/**
23+
* 清理所有简历字段定义缓存
24+
* 用于解决序列化兼容性问题
25+
*/
26+
public void clearFieldDefinitionCache() {
27+
try {
28+
String pattern = "field_definition:*";
29+
Set<String> keys = redisTemplate.keys(pattern);
30+
31+
if (keys != null && !keys.isEmpty()) {
32+
redisTemplate.delete(keys);
33+
logger.info("成功清理 {} 个字段定义缓存", keys.size());
34+
} else {
35+
logger.info("没有找到需要清理的字段定义缓存");
36+
}
37+
} catch (Exception e) {
38+
logger.error("清理字段定义缓存失败", e);
39+
}
40+
}
41+
42+
/**
43+
* 清理所有缓存(慎用)
44+
*/
45+
public void clearAllCache() {
46+
try {
47+
Set<String> keys = redisTemplate.keys("*");
48+
if (keys != null && !keys.isEmpty()) {
49+
redisTemplate.delete(keys);
50+
logger.info("成功清理所有缓存,共 {} 个key", keys.size());
51+
} else {
52+
logger.info("没有找到需要清理的缓存");
53+
}
54+
} catch (Exception e) {
55+
logger.error("清理所有缓存失败", e);
56+
}
57+
}
58+
59+
/**
60+
* 清理特定模式的缓存
61+
* @param pattern 缓存key模式
62+
*/
63+
public void clearCacheByPattern(String pattern) {
64+
try {
65+
Set<String> keys = redisTemplate.keys(pattern);
66+
if (keys != null && !keys.isEmpty()) {
67+
redisTemplate.delete(keys);
68+
logger.info("成功清理模式 '{}' 的缓存,共 {} 个key", pattern, keys.size());
69+
} else {
70+
logger.info("没有找到模式 '{}' 的缓存", pattern);
71+
}
72+
} catch (Exception e) {
73+
logger.error("清理模式 '{}' 的缓存失败", pattern, e);
74+
}
75+
}
76+
}

0 commit comments

Comments
 (0)