Spring中使用RedisTemplate操作Redis(spring(3)

使用:template.opsForValue().increment("increlong",1.2);
      System.out.println("***************"+template.opsForValue().get("increlong"));
结果:***************2.2

•append Integer append(K key, String value);
如果key已经存在并且是一个字符串,则该命令将该值追加到字符串的末尾。如果键不存在,则它被创建并设置为空字符串,因此APPEND在这种特殊情况下将类似于SET。

使用:template.opsForValue().append("appendTest","Hello");
      System.out.println(template.opsForValue().get("appendTest"));
      template.opsForValue().append("appendTest","world");
      System.out.println(template.opsForValue().get("appendTest"));
结果:Hello
      Helloworld

•get String get(K key, long start, long end);
截取key所对应的value字符串

使用:appendTest对应的value为Helloworld
System.out.println("*********"+template.opsForValue().get("appendTest",0,5));
结果:*********Hellow
使用:System.out.println("*********"+template.opsForValue().get("appendTest",0,-1));
结果:*********Helloworld
使用:System.out.println("*********"+template.opsForValue().get("appendTest",-3,-1));
结果:*********rld

•size Long size(K key);
返回key所对应的value值得长度

使用:template.opsForValue().set("key","hello world");
  System.out.println("***************"+template.opsForValue().size("key"));
结果:***************11

•setBit Boolean setBit(K key, long offset, boolean value);
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)
key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value

使用:template.opsForValue().set("bitTest","a");
      // 'a' 的ASCII码是 97。转换为二进制是:01100001
      // 'b' 的ASCII码是 98  转换为二进制是:01100010
      // 'c' 的ASCII码是 99  转换为二进制是:01100011
      //因为二进制只有0和1,在setbit中true为1,false为0,因此我要变为'b'的话第六位设置为1,第七位设置为0
      template.opsForValue().setBit("bitTest",6, true);
      template.opsForValue().setBit("bitTest",7, false);
      System.out.println(template.opsForValue().get("bitTest"));
结果:b

•getBit Boolean getBit(K key, long offset);
获取键对应值的ascii码的在offset处位值

使用:System.out.println(template.opsForValue().getBit("bitTest",7));
结果:false

Redis的List数据结构

这边我们把RedisTemplate序列化方式改回之前的

Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
      template.setKeySerializer(jackson2JsonRedisSerializer);
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.setHashKeySerializer(jackson2JsonRedisSerializer);
        template.setHashValueSerializer(jackson2JsonRedisSerializer);

public interface ListOperations<K,V>
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
ListOperations专门操作list列表:

•List<V> range(K key, long start, long end);
返回存储在键中的列表的指定元素。偏移开始和停止是基于零的索引,其中0是列表的第一个元素(列表的头部),1是下一个元素

使用:System.out.println(template.opsForList().range("list",0,-1));
结果:[c#, c++, Python, java, c#, c#]

•void trim(K key, long start, long end);
修剪现有列表,使其只包含指定的指定范围的元素,起始和停止都是基于0的索引

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8f96c330d6318f32beb9e4557005b934.html