首页 > 其他 > 详细

RedisTemplate与StringRedisTemplate的区别

时间:2020-01-03 14:23:29      阅读:87      评论:0      收藏:0      [点我收藏+]

在操作Redis时会使用RedisTemplate与StringRedisTemplate,但是这两者的区别呢?

其一:两者的数据各自存取,不互通

RedisTemplate不能取StringRedisTemplate存放的数据

StringRedisTemplate不能取RedisTemplate的数据

@Test
    void contextLoads() {
        redisTemplate.opsForValue().set("key1","value1");
        System.out.println("redisTemplate存redisTemplate取:"+redisTemplate.opsForValue().get("key1"));
        System.out.println("redisTemplate存stringRedisTemplate取:"+stringRedisTemplate.opsForValue().get("key1"));

        stringRedisTemplate.opsForValue().set("key2","value2");
        System.out.println("stringRedisTemplate存redisTemplate取:"+redisTemplate.opsForValue().get("key2"));
        System.out.println("stringRedisTemplate存stringRedisTemplate取:"+stringRedisTemplate.opsForValue().get("key2"));

    }

效果如下:

redisTemplate存redisTemplate取:value1
redisTemplate存stringRedisTemplate取:null
stringRedisTemplate存redisTemplate取:null
stringRedisTemplate存stringRedisTemplate取:value2

 

其二:序列化策略不同

RedisTemplate默认采用的的是JDK自带的序列化策略

StringRedisTemplate默认采用的是String的序列化策略

 

StringRedisTemplate继承了RedisTemplate<String,String>

RedisTemplate存数据时是先将数据序列化成字节数组,再存放到Redis数据库中,当我们用可视化工具查看数据时是一串看不懂得字节数组

技术分享图片

 

 

StringRedisTemplate存数据后,用可视化工具查看的数据是可读数据

技术分享图片

 

 

总结一下:如果存取的数据是数据是String类型的那么就直接用StringRedisTemplate,如果是其他对象类型,且取出时不想做任何数据转换,那么推荐使用RedisTemplate

RedisTemplate与StringRedisTemplate的区别

原文:https://www.cnblogs.com/pengpengdeyuan/p/12144585.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!