国际快递网站建设,网站开发客户需求文档,婚庆公司网站制作,微信开发者平台登录简单记录一下java处理redis的几种序列化策略#xff0c;这里使用的环境是springboot 2.0.4springboot中提供了StringRedisTemplate和RedisTemplate两种序列化类#xff0c;它们都只能读自己存的数据#xff0c;即数据互不相通。主要区别如下#xff1a;1、采用的序列化策略…简单记录一下java处理redis的几种序列化策略这里使用的环境是springboot 2.0.4springboot中提供了StringRedisTemplate和RedisTemplate两种序列化类它们都只能读自己存的数据即数据互不相通。主要区别如下1、采用的序列化策略不同StringRedisTemplate采用的是String的序列化策略RedisTemplate默认采用的是jdk的序列化策略2、存的数据形式不同StringRedisTemplate存的是字符串RedisTemplate存的是字节数组在redis-cli中看好像乱码3、使用范围不同StringRedisTemplate只能处理字符串类型的数据如果存取复杂的对象又不想做额外的处理最好用RedisTemplate改写RedisTemplate我们可以改写RedisTemplate的序列化策略比如使用Jackson2JsonRedisSerializer(还有很多)如下Configurationpublic classRedisConfig {BeanConditionalOnMissingBean(name redisTemplate)public RedisTemplateredisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate template new RedisTemplate();//使用fastjson序列化Jackson2JsonRedisSerializer fastJsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);//value的序列化采用fastJsonRedisSerializertemplate.setValueSerializer(fastJsonRedisSerializer);template.setHashValueSerializer(fastJsonRedisSerializer);//key的序列化采用StringRedisSerializertemplate.setKeySerializer(newStringRedisSerializer());template.setHashKeySerializer(newStringRedisSerializer());template.setConnectionFactory(redisConnectionFactory);returntemplate;}}与默认的JdkSerializationRedisSerializer相比好处之一是存取对象不用实现Serializable接口Jackson2Json中已做处理。使用示例... ...Autowiredprivate RedisTemplateredisTemplate;public voidtestSetUser() {User usernew User(1,哈哈,20);redisTemplate.opsForValue().set(user,user);}public voidtestGetUser() {User user(User)redisTemplate.opsForValue().get(user);System.out.println(user.getName());}