由于JetCache没提供批量自定义删除缓存的方法,因此自己简单实现了一版。
实测,JetCache版本2.6.4-2.6.7之间测试均有效果。
Jetcache官方链接:GitHub - alibaba/jetcache: JetCache is a Java cache framework.
public class JetCacheDeleteDataUtils {
//入口
public static List<String> clearRedisKeys(String fuzzyKey, Cache cache) {
// 拼接key,这里采用全模糊
String pattern = "*" + fuzzyKey + "*";
List<String> res = Lists.newArrayList();
//获取jetcache config
CacheConfig cacheConfig = getTarget(cache).config();
// 根据获取到的config类型,判断是单机配置还是集群配置
if (cacheConfig instanceof RedisCacheConfig) {
res = clearSingleRedis(pattern, cacheConfig);
} else if (cacheConfig instanceof RedisLettuceCacheConfig) {
res = clearCluster