Browse Source

修改配置

liyang 6 months ago
parent
commit
f5ba4aae15

+ 25 - 6
src/main/java/com/ywt/biz/common/config/redis/LettuceRedisConfig.java

@@ -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 + ":");
+    }
+
 
 }