|
@@ -21,6 +21,8 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.data.redis.serializer.*;
|
|
|
|
|
|
import java.time.Duration;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* Redis配置类
|
|
@@ -70,19 +72,36 @@ public class LettuceRedisConfig {
|
|
|
*/
|
|
|
@Bean
|
|
|
public CacheManager cacheManager(RedisConnectionFactory factory,StringRedisSerializer stringRedisSerializer, Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
|
|
|
- // 配置序列化(解决乱码的问题),过期时间600秒
|
|
|
- RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
|
|
|
- .computePrefixWith(cacheName -> "entity:" + cacheName + ":")
|
|
|
+ // 缓存配置
|
|
|
+ RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig()
|
|
|
+ // 默认没有特殊指定的缓存,设置失效时间为600s
|
|
|
.entryTtl(Duration.ofSeconds(600))
|
|
|
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(stringRedisSerializer))
|
|
|
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
|
|
|
- .disableCachingNullValues();
|
|
|
-
|
|
|
+ .disableCachingNullValues()
|
|
|
+ // 在缓存名称前加上前缀
|
|
|
+ .computePrefixWith(cacheName -> "default:" + cacheName);
|
|
|
+ Map<String, RedisCacheConfiguration> initialCacheConfiguration = new HashMap<>(8);
|
|
|
+ // 设定失效时间为1小时
|
|
|
+ initialCacheConfiguration.put("sys_oss_config", getDefaultSimpleConfiguration(stringRedisSerializer,jackson2JsonRedisSerializer));
|
|
|
return RedisCacheManager.builder(factory)
|
|
|
- .cacheDefaults(config)
|
|
|
+ .cacheDefaults(defaultCacheConfig )
|
|
|
+ .withInitialCacheConfigurations(initialCacheConfiguration)
|
|
|
.build();
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 覆盖默认的构造key[默认拼接的时候是两个冒号(::)],否则会多出一个冒号
|
|
|
+ *
|
|
|
+ * @return 返回缓存配置信息
|
|
|
+ */
|
|
|
+ private RedisCacheConfiguration getDefaultSimpleConfiguration(StringRedisSerializer stringRedisSerializer, Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
|
|
|
+ return RedisCacheConfiguration.defaultCacheConfig().
|
|
|
+ serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(stringRedisSerializer))
|
|
|
+ .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
|
|
|
+ .disableCachingNullValues().computePrefixWith(cacheName -> cacheName + ":");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|