12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package com.sky.ioc.config;
- import org.springframework.cache.annotation.EnableCaching;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
- import org.springframework.data.redis.serializer.RedisSerializer;
- import org.springframework.data.redis.serializer.StringRedisSerializer;
- @EnableCaching
- @Configuration
- public class MyRedisConfig {
- // @Primary
- // @Bean
- // public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory){
- // RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
- // redisCacheConfiguration = redisCacheConfiguration
- // // 设置缓存的默认超时时间:30分钟
- // .entryTtl(Duration.ofMillis(30l))
- // // 如果是空值,不缓存
- // .disableCachingNullValues()
- // // 设置key序列号器
- // .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(keySerialization()))
- // // 设置value序列号器
- // .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(valueSerialization()));
- //
- // return RedisCacheManager
- // .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
- // .cacheDefaults(redisCacheConfiguration)
- // .build();
- // }
- //
- // // key序列号器
- // private RedisSerializer<String> keySerialization(){
- // return new StringRedisSerializer();
- // }
- // // value序列号器
- // private RedisSerializer<Object> valueSerialization(){
- // return new GenericJackson2JsonRedisSerializer();
- // }
- @Bean(name = "redisTemplate")
- public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
- RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
- ////参照StringRedisTemplate内部实现指定序列化器
- redisTemplate.setConnectionFactory(redisConnectionFactory);
- redisTemplate.setKeySerializer(keySerializer());
- redisTemplate.setHashKeySerializer(keySerializer());
- redisTemplate.setValueSerializer(valueSerializer());
- redisTemplate.setHashValueSerializer(valueSerializer());
- return redisTemplate;
- }
- private RedisSerializer<String> keySerializer(){
- return new StringRedisSerializer();
- }
- //使用Jackson序列化器
- private RedisSerializer<Object> valueSerializer(){
- return new GenericJackson2JsonRedisSerializer();
- }
- }
|