Redis序列化与反序列化工具类


/**
* @Author Hanson * @Date 2020/4/6 14:02 * @Version 2.0 */ @Configuration //开启注解缓存 @EnableCaching public class RedisConfig { @SuppressWarnings("AliDeprecation") @Bean public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){ //创建redisTemplate模板 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); //配置连接工厂 redisTemplate.setConnectionFactory(factory); //使用Jackson2JsonRedisSerializer来序列化和反序列化Redis的value值(默认使用JDK的序列化方式) Jackson2JsonRedisSerializer jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper objectMapper = new ObjectMapper(); //指定要序列化的域,field,get和set,以及修饰符范围,ANY表示都有包括private和public objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); //指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会抛出异常 objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jsonRedisSerializer.setObjectMapper(objectMapper); //设置value的序列化规则和key的序列化规则 redisTemplate.setValueSerializer(jsonRedisSerializer); redisTemplate.setHashValueSerializer(jsonRedisSerializer); //使用StringRedisSerializer来序列化和反序列化Redis的key值 redisTemplate.setKeySerializer(new StringRedisSerializer()); //设置hash key和value序列化模式 redisTemplate.setHashKeySerializer(redisTemplate.getKeySerializer()); redisTemplate.afterPropertiesSet(); //返回redisTemplate对象 return redisTemplate; } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM