zoukankan      html  css  js  c++  java
  • RedisTemplate与StringRedisTemplate的区别

    在操作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

  • 相关阅读:
    8月30日图雄网站隆重推出三维地图服务系统!!!
    电子地图真的是百花齐放了——百度地图即将发布
    GIS应对新挑战——空间信息网格技术探寻
    C盘和其他盘中间有恢复分区,C盘无法扩展的解决办法之一
    osg绘制ifc工字钢的端面
    protobuf编译
    osg绘图的形式
    colors
    SpeechSynthesisUtterance
    kinova jaco2 控制机械臂动作
  • 原文地址:https://www.cnblogs.com/pengpengdeyuan/p/12144585.html
Copyright © 2011-2022 走看看