<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot~RedisTemplate三種序列化方式

      RedisTemplate默認使用二進制hex的方式進行持久化,它對象的值存儲到redis里,當然,你的對象需要先實現(xiàn)java.io.Serializable接口,這種方式兼容性好,速度快,存儲空間??;缺點就是沒有可讀性,所以就有了json的序列化方式,下面總結(jié)一下。

      一 JdkSerializationRedisSerializer二進制流的方式

      @Test
          public void hex() {
              RedisTemplate<String, Object> template = new RedisTemplate<>();
              template.setConnectionFactory(factory);
              //二進制序列化,實體類需要實現(xiàn)Serializable接口
              JdkSerializationRedisSerializer jdkSerializationRedisSerializer = new JdkSerializationRedisSerializer();
              //序列化
              StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
              template.setKeySerializer(stringRedisSerializer);
              template.setHashKeySerializer(stringRedisSerializer);
              template.setValueSerializer(jdkSerializationRedisSerializer);
              template.setHashValueSerializer(jdkSerializationRedisSerializer);
              template.afterPropertiesSet();
      
              extracted(template, "redis_test111");
              User user = (User) template.opsForValue().get("redis_test111");
          }
      

      二 Jackson2JsonRedisSerializer純json字符串

       @Test
          public void jsonStr() throws IOException {
              RedisTemplate<String, Object> template = new RedisTemplate<>();
              template.setConnectionFactory(factory);
              Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer =
                      new Jackson2JsonRedisSerializer<>(Object.class);
              //序列化
              jackson2JsonRedisSerializer.setObjectMapper(new ObjectMapper());
              StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
              template.setKeySerializer(stringRedisSerializer);
              template.setHashKeySerializer(stringRedisSerializer);
              template.setValueSerializer(jackson2JsonRedisSerializer);
              template.setHashValueSerializer(jackson2JsonRedisSerializer);
              template.afterPropertiesSet();
              extracted(template, "redis_test11");
              JsonParser jsonParser = mapper.getFactory().createParser(mapper.writeValueAsBytes(template.opsForValue().get("redis_tesqt")));
              User jsonNode = jsonParser.readValueAs(User.class);
              log.info("user={}", jsonNode);
          }
      

      三 Jackson2JsonRedisSerializer帶有java類型的方式

      RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
              template.setConnectionFactory(factory);
              Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
              ObjectMapper om = new ObjectMapper();
              om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
              // 日期序列化處理
              om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
              om.registerModule(new Jdk8Module())
                      .registerModule(new JavaTimeModule())
                      .registerModule(new ParameterNamesModule());
      
              //存儲java的類型,方便反序列化,沒有這行,將存儲為純json字符串
              om.activateDefaultTyping(
                      LaissezFaireSubTypeValidator.instance,
                      ObjectMapper.DefaultTyping.NON_FINAL,
                      JsonTypeInfo.As.WRAPPER_ARRAY);
              jackson2JsonRedisSerializer.setObjectMapper(om);
              StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
              // key采用String的序列化方式
              template.setKeySerializer(stringRedisSerializer);
              // hash的key也采用String的序列化方式
              template.setHashKeySerializer(stringRedisSerializer);
              // value序列化方式采用jackson
              template.setValueSerializer(jackson2JsonRedisSerializer);
              // hash的value序列化方式采用jackson
              template.setHashValueSerializer(jackson2JsonRedisSerializer);
              template.afterPropertiesSet();
              extracted(template, "redis_test1");
              User user = (User) template.opsForValue().get("redis_test");
              log.info("user={}", user);
      

      綜上所述,我認為第三種json對象的方式是比較好的處理方式,在序列化和反序列化,及可讀性上都表現(xiàn)不錯。

      posted @ 2022-09-16 17:20  張占嶺  閱讀(2261)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜精品极品粉嫩国产尤物| 国产麻豆精品手机在线观看| 亚洲精品国产免费av| 亚洲区精品区日韩区综合区| 亚洲成av人片在线观看www| 扒开双腿猛进入喷水高潮叫声| 永久免费观看美女裸体的网站| 成人福利国产午夜AV免费不卡在线 | 久久久久久九九99精品| 国产美女高潮流白浆视频| 成人性生交大片免费看r老牛网站 中文字幕一区二区三区四区五区 久久久久久毛片免费播放 | 女性高爱潮视频| 亲子乱aⅴ一区二区三区| 亚洲色一色噜一噜噜噜| 成人一区二区不卡国产| 成人国产精品一区二区网站公司| 热久久美女精品天天吊色| 97国产露脸精品国产麻豆| 天天躁日日躁狠狠躁一区| 人妻无码| 日韩精品一二区在线观看| 榆树市| 国产亚洲AV电影院之毛片| 亚洲中文字幕日产无码成人片| 99热精品毛片全部国产无缓冲| 成年女人片免费视频播放A| 久久精品一区二区三区综合| 国产精品一线天粉嫩av| 国产精品自在线拍国产| 旌德县| 国产人妻大战黑人第1集| 亚洲日本韩国欧美云霸高清| 尤物yw193无码点击进入| 精品国产中文字幕av| 午夜通通国产精品福利| 无码av天天av天天爽| 人妻丝袜中文无码av影音先锋 | 国产精品老熟女乱一区二区 | 亚洲高潮喷水无码AV电影| 久久久综合香蕉尹人综合网| 欧美刺激性大交|