package com.lunhan.xxx.common.cache;
|
|
import com.lunhan.xxx.common.ConstantFactory;
|
import org.springframework.cache.CacheManager;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Primary;
|
import org.springframework.data.redis.cache.RedisCacheConfiguration;
|
import org.springframework.data.redis.cache.RedisCacheManager;
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
import java.time.Duration;
|
|
@Configuration
|
public class CacheManagerConfig {
|
@Bean
|
@Primary
|
public CacheManager json4RedisCacheManager(RedisConnectionFactory redisConnectionFactory) {
|
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
|
//设置24小时过期
|
.entryTtl(Duration.ofMillis(ConstantFactory.TIME_LEN_24H))
|
//设置key的序列化方式
|
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
|
//设置值的序列化方式
|
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
|
|
|
RedisCacheManager.RedisCacheManagerBuilder builder =
|
RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(redisConnectionFactory);
|
|
//返回构造的cacheManager
|
return builder.transactionAware().cacheDefaults(config).build();
|
}
|
}
|