自定义RedisTemplate和RedisCacheManager
2020-07-16 04:32
78 查看
默认的RedisTemplate和RedisCacheManager的使用JDK的序列化方式,可以自定义为string和json序列化
@Configuration public class MyRedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { // 为了开发方便,一般使用<String, Object> RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); // Json序列化配置 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // 设置key的序列化方式 template.setKeySerializer(stringRedisSerializer); // 设置hashkey的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // 设置value的序列化方式 template.setValueSerializer(jackson2JsonRedisSerializer); // 设置hashvalue的序列化方式 template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } @Bean public RedisCacheManager myRedisCacheManager(RedisConnectionFactory redisConnectionFactory){ RedisSerializer<String> redisSerializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); // 配置序列化(解决乱码的问题) RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig() .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)) .disableCachingNullValues(); RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(config).build(); return cacheManager; } }
相关文章推荐
- springboot整合redis,需要自定义redisTemplate模板。采用的Jackson2JsonRedisSerializer序列化,拿来即用
- Spring boot整合redis过程中,自定义的拦截器中无法通过spring注入redisTemplate
- RedisTemplate自定义序列化(String和JSON)
- 自定义Template,向其中添加新的panel
- 使用Spring-Data-Redis存储对象(redisTemplate)
- RedisTemplate实现事物问题剖析和解决
- RedisTemplate实现分布式锁
- SpringBoot中注入RedisTemplate实例异常解决
- spring与redis整合,redisTemplate的使用
- Spring-Data-Redis之RedisTemplate的使用
- SpringBoot 2.x 整合 redis 做缓存,并支持自定义过期时间
- spring-data-redis之redisTemplate事务与数据锁使用
- redis整合spring(redisTemplate工具类)
- Spring Boot单元测试中使用mockito框架mock掉整个RedisTemplate的示例
- 如何使用RedisTemplate访问Redis数据结构
- spring 整合 redis,以及spring的RedisTemplate如何使用
- spring-redis缓存方案学习三:基于aop的自定义注解开发
- Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接(二)
- redis自定义lua脚本
- 如何使用RedisTemplate访问Redis数据结构