| | |
| | | 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 org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.data.redis.core.StringRedisTemplate; |
| | | import org.springframework.data.redis.serializer.*; |
| | | |
| | | import java.time.Duration; |
| | | |
| | |
| | | //设置24小时过期 |
| | | .entryTtl(Duration.ofMillis(ConstantFactory.TIME_LEN_24H)) |
| | | //设置key的序列化方式 |
| | | .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) |
| | | .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new RedisKeySerializer())) |
| | | //设置值的序列化方式 |
| | | .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); |
| | | |
| | |
| | | //返回构造的cacheManager |
| | | return builder.transactionAware().cacheDefaults(config).build(); |
| | | } |
| | | |
| | | @Bean |
| | | public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { |
| | | StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(redisConnectionFactory); |
| | | stringRedisTemplate.setKeySerializer(new RedisKeySerializer()); |
| | | return stringRedisTemplate; |
| | | } |
| | | |
| | | @Bean |
| | | public RedisTemplate<String, Object> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) { |
| | | RedisSerializer<String> serializer = new StringRedisSerializer(); |
| | | Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); |
| | | RedisTemplate<String, Object> template = new RedisTemplate<>(); |
| | | template.setConnectionFactory(redisConnectionFactory); |
| | | template.setKeySerializer(new RedisKeySerializer()); |
| | | template.setValueSerializer(jackson2JsonRedisSerializer); |
| | | template.setHashKeySerializer(serializer); |
| | | template.setHashValueSerializer(jackson2JsonRedisSerializer); |
| | | template.afterPropertiesSet(); |
| | | |
| | | return template; |
| | | } |
| | | } |