【Redis】Redis使用和RedisTemplate的方法介绍

目录

基本使用

RedisTemplate.opsForList()的方法介绍

RedisTemplate.opsForValue()的方法介绍

RedisTemplate.opsForSet()的方法介绍

RedisTemplate.opsForHash()的方法介绍

RedisTemplate.opsForZSet() 的方法介绍


基本使用

添加坐标

<!--redis-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.7.13</version>
</dependency>

 注入RedisTemplate注解

@Autowired
private RedisTemplate redisTemplate;

使用写就行了 当然这是基础用法 

RedisTemplate.opsForList()的方法介绍

  •  leftPush :从集合左边插入值 | | 从集合左边开始在v值后边插入新值v1
  • redisTemplate.opsForList().leftPush("list","a");
    redisTemplate.opsForList().leftPush("list", "a", "e");
  • leftPushAll :从左边批量插入新值 | | 从左边批量插入新值(同上)
  • List<String> strings = Arrays.asList("a", "b", "c");
    redisTemplate.opsForList().leftPushAll("list", strings);
    
    redisTemplate.opsForList().leftPushAll("list", "j", "q", "k");
  • leftPushIfPresent :如果key存在,从左边插入新值
  • redisTemplate.opsForList().leftPushIfPresent("key", "j");
  • leftPop :默认移除key中最左的一个值 | | 指定过期时间后删除key最左的一个值
  • redisTemplate.opsForList().leftPop("list");
    redisTemplate.opsForList().leftPop("list",1,TimeUnit.MINUTES);
  • rightPopAndLeftPush :移除k1中最右的值,并将移除的值插入k2中最左侧 | | 指定过期时间后,移除k1中最右的值,并将移除的值插入k2中最左侧(同上)
  • redisTemplate.opsForList().rightPopAndLeftPush("list", "list2");
    redisTemplate.opsForList().rightPopAndLeftPush("list", "list2",1,TimeUnit.MINUTES);
  • rightPush:从右侧插入新值 | | 从右查找v1,并在v1右侧插入新值v2
  • redisTemplate.opsForList().rightPush("rightList",'a');
    redisTemplate.opsForList().rightPush("rightList", "b", "e");
  • rightPushAll :从右侧批量插入
  • redisTemplate.opsForList().rightPushAll("rightList", "e", "f","g");
    
    List<String> strings = Arrays.asList("j", "q", "k");
    redisTemplate.opsForList().rightPushAll("rightList", strings);
  • rightPushIfPresent :如果key存在,在右侧新插入value,否则不插入
  • redisTemplate.opsForList().rightPushIfPresent("rightList", "a");
    
  • rightPop :默认从最右侧移除一个值
  • redisTemplate.opsForList().rightPop("rightList");
  • index :获取指定位置的值(index从左往右,从0开始)
  • String string1 = (String) redisTemplate.opsForList().index("rightList", 2);
    
  • size :获取对应key的集合长度
  • redisTemplate.opsForList().size("rightList");
  •  set :在指定坐标位置插入(替换)新值
  • redisTemplate.opsForList().set("rightList",2,"e");
  • trim :截取下标long1和long2之间的值,包括long1和long2对应的值,并将其保留为key对应的新值
  • redisTemplate.opsForList().trim("rightList",1,3);
  • range :获取指定下标间的值
  • redisTemplate.opsForList().range("rightList", 0, -1);
  • remove :从存储在键中的列表中删除等于值的元素的第一个计数事件。
  • redisTemplate.opsForList().remove("rightList", 0, "c");

RedisTemplate.opsForValue()的方法介绍

  • set : 新增一个字符串类型的值,key是键,value是值。
  • redisTemplate.opsForValue().set("stringValue","bbb");  
  •  get : 获取key键对应的值
  •  redisTemplate.opsForValue().get("stringValue")
  • append :在原有的值基础上新增字符串到末尾。
  • redisTemplate.opsForValue().append("stringValue","aaa");  
  •  getAndSet :获取原来key键对应的值并重新赋新值。
  • redisTemplate.opsForValue().getAndSet("stringValue","ccc")
  • setBit :key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value。 
  • redisTemplate.opsForValue().setBit("stringValue",1,false);  
  • getBit : 判断指定的位置ASCII码的bit位是否为1。 
  • redisTemplate.opsForValue().getBit("stringValue",1);
  • size :获取指定字符串的长度。
  • redisTemplate.opsForValue().size("stringValue");  
  • increment : 以增量的方式将 double/long 值存储在变量中。
  • redisTemplate.opsForValue().increment("doubleValue",5);
  • setlfAbsent : 如果键不存在则新增,存在则不改变已经有的值。
  • redisTemplate.opsForValue().setIfAbsent("absentValue","fff");  
  • multiSet :设置map集合到redis。
  • Map valueMap = new HashMap();  
    valueMap.put("valueMap1","map1");  
    valueMap.put("valueMap2","map2");  
    valueMap.put("valueMap3","map3");  
    redisTemplate.opsForValue().multiSet(valueMap);  
    
  •  multiGet : 根据集合取出对应的value值。
  • List paraList = new ArrayList();  
    paraList.add("valueMap1");  
    paraList.add("valueMap2");  
    paraList.add("valueMap3");  
    redisTemplate.opsForValue().multiGet(paraList);
  • multisetlfAbsent : 如果对应的map集合名称不存在,则添加,如果存在则不做修改。 
  • Map valueMap = new HashMap();  
    valueMap.put("valueMap1","map1");  
    valueMap.put("valueMap2","map2");  
    valueMap.put("valueMap3","map3");  
    redisTemplate.opsForValue().multiSetIfAbsent(valueMap);  
    

RedisTemplate.opsForSet()的方法介绍

  • add :向集合中添加一个或多个元素
  • ​​​​​​​redisTemplate.opsForSet().add("myset", "value1", "value2", "value3");
  • members:获取集合中的所有成员
  • Set<Object> members = redisTemplate.opsForSet().members("myset");
  • size:获取集合的大小
  • Long size = redisTemplate.opsForSet().size("myset");
  • isMember:判断元素是否是集合的成员
  • Boolean isMember = redisTemplate.opsForSet().isMember("myset", "value1");
  • randomMember:获取集合中的随机元素
  • Object randomMember = redisTemplate.opsForSet().randomMember("myset");
  • pop:弹出并返回集合中的一个随机元素
  • Object poppedMember = redisTemplate.opsForSet().pop("myset");
  • remove:从集合中移除一个或多个元素
  • redisTemplate.opsForSet().remove("myset", "value1", "value2");
  • intersect:计算多个集合的交集,并返回结果集合
  • Set<Object> intersection = redisTemplate.opsForSet().intersect("set1", "set2");
  • union:计算多个集合的并集,并返回结果集合
  • Set<Object> union = redisTemplate.opsForSet().union("set1", "set2");
  • difference:计算两个集合的差集,并返回结果集合
  • Set<Object> difference = redisTemplate.opsForSet().difference("set1", "set2");

RedisTemplate.opsForHash()的方法介绍

  • put :新增hashMap值
  • redisTemplate.opsForHash().put("hashValue","map1","value1");
  • get :获取key对应的map中,key为var2的map的对应的值
  • Object o = redisTemplate.opsForHash().get("hashValue", "map1");
  • entries :获取key对应的所有map键值对
  • Map hashValue = redisTemplate.opsForHash().entries("hashValue");
  • keys :获取key对应的map中所有的键
  • redisTemplate.opsForHash().keys("hashValue");
  • values :获取key对应的map中所有的值
  • redisTemplate.opsForHash().values("hashValue");
  • hasKey :判断key对应的map中是否有指定的键
  • redisTemplate.opsForHash().hasKey("hashValue", "map1");
  • size :获取key对应的map的长度
  • redisTemplate.opsForHash().size("hashValue");
  • putIfAbsent :如果key对应的map不存在,则新增到map中,存在则不新增也不覆盖
  • redisTemplate.opsForHash().putIfAbsent("hashValue", "map3", "value3");
  • putAll :直接以map集合的方式添加key对应的值
  • Map newMap = new HashMap();
    newMap.put("map4","map4");
    newMap.put("map5","map5");
    redisTemplate.opsForHash().putAll("hashValue",newMap);
  • multiGet :以集合的方式获取这些键对应的map
  • List list = new ArrayList<>();
    list.add("map1");
    list.add("map2");
    redisTemplate.opsForHash().multiGet("hashValue", list);
  • lengthOfValue :获取指定key对应的map集合中,指定键对应的值的长度
  • redisTemplate.opsForHash().lengthOfValue("hashValue", "map1");
  • increment :使key对应的map中,键var2对应的值以long1自增 | | 使key对应的map中,键var2对应的值以double类型d1自增
  • redisTemplate.opsForHash().increment("hashValue", "map7", 1);
    redisTemplate.opsForHash().increment("hashValue", "map8", 1.2);
  • scan :匹配获取键值对
  • Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.scanOptions().match("map1").build());
    redisTemplate.opsForHash().scan("hashValue",ScanOptions.NONE);
        while (cursor.hasNext()) {
            Map.Entry<Object, Object> entry = cursor.next();
        }
    
  • delete :删除key对应的map中的键值对
  • redisTemplate.opsForHash().delete("hashValue", "map1", "map2");

RedisTemplate.opsForZSet() 的方法介绍

  • add :添加元素到变量中同时指定元素的分值。 | | 通过TypedTuple方式新增数据。
  • redisTemplate.opsForZSet().add("zSet", "aaa", 1);
    redisTemplate.opsForZSet().add("zSet", "bbb", 2);
    redisTemplate.opsForZSet().add("zSet", "ccc", 3);
    
    ZSetOperations.TypedTuple<Object> typedTuple1 = new DefaultTypedTuple<Object>("E",6.0);
    ZSetOperations.TypedTuple<Object> typedTuple2 = new DefaultTypedTuple<Object>("F",7.0);
    ZSetOperations.TypedTuple<Object> typedTuple3 = new DefaultTypedTuple<Object>("G",5.0);
    Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = new HashSet<ZSetOperations.TypedTuple<Object>>();
    typedTupleSet.add(typedTuple1);
    typedTupleSet.add(typedTuple2);
    typedTupleSet.add(typedTuple3);
    redisTemplate.opsForZSet().add("typedTupleSet",typedTupleSet);
  • incrementScore :修改变量中的元素的分值。
  • redisTemplate.opsForZSet().incrementScore("zSet","aaa",5);
    
  • range :获取变量指定区间的元素。
  • redisTemplate.opsForZSet().range("zSet",0,-1);
    
  • rangeByLex :用于获取满足非score的排序取值。这个排序只有在有相同分数的情况下才能使用,如果有不同的分数则返回值不确定。 | | ​ 用于获取满足非score的设置下标开始的长度排序取值。
  • RedisZSetCommands.Range range = new RedisZSetCommands.Range();
    range.lt("D");
    redisTemplate.opsForZSet().rangeByLex("zSet", range);
    
    RedisZSetCommands.Limit limit = new RedisZSetCommands.Limit();
    limit.count(2);
    limit.offset(1);
    zSetValue = redisTemplate.opsForZSet().rangeByLex("zSet", range,limit);
    
  • rangeByScore :根据设置的score获取区间值。| | 根据设置的score获取区间值从给定下标和给定长度获取最终值。
  • redisTemplate.opsForZSet().rangeByScore("zSet",1,2);
    
    redisTemplate.opsForZSet().rangeByScore("zSet",1,5,1,3);
    
  • rangeWithScores :获取RedisZSetCommands.Tuples的区间值。
  • Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().rangeWithScores("typedTupleSet",1,3);
    Iterator<ZSetOperations.TypedTuple<Object>> iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score = typedTuple.getScore();
    }
    
  • rangeByScoreWithScores :获取RedisZSetCommands.Tuples的区间值通过分值。 | | 获取RedisZSetCommands.Tuples的区间值从给定下标和给定长度获取最终值通过分值。
  • Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().rangeByScoreWithScores("typedTupleSet",5,8);
    iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score = typedTuple.getScore();
    }
    
    
    Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().rangeByScoreWithScores("typedTupleSet",5,8,1,1);
    iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score = typedTuple.getScore();
    }
    
    
  • count :获取区间值的个数。
  • redisTemplate.opsForZSet().count("zSet",1,5);
  • rank :获取变量中元素的索引,下标开始位置为0。
  • redisTemplate.opsForZSet().rank("zSet","B");
  • scan :匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match(“C”).build()匹配获取键位map1的键值对,不能模糊匹配。
  • Cursor<ZSetOperations.TypedTuple<Object>> cursor = redisTemplate.opsForZSet().scan("zSet", ScanOptions.NONE);
    while (cursor.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = cursor.next();
    }
  • score :获取元素的分值。
  • redisTemplate.opsForZSet().score("zSet","B");
  • zCard :获取变量中元素的个数。
  • redisTemplate.opsForZSet().zCard("zSet");
  • incrementScore :修改变量中的元素的分值。
  • redisTemplate.opsForZSet().incrementScore("zSet","C",5);
  • reverseRange :索引倒序排列指定区间元素。
  • redisTemplate.opsForZSet().reverseRange("zSet",0,-1);
  • reverseRangeByScore :倒序排列指定分值区间元素。
  • redisTemplate.opsForZSet().reverseRangeByScore("zSet",1,5);
  • reverseRangeByScore :倒序排列从给定下标和给定长度分值区间元素。
  • redisTemplate.opsForZSet().reverseRangeByScore("zSet",1,5,1,2);
  • reverseRangeByScoreWithScores :倒序排序获取RedisZSetCommands.Tuples的分值区间值。  | | 倒序排序获取RedisZSetCommands.Tuples的从给定下标和给定长度分值区间值。
  • Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zSet",1,5);
    iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score1 = typedTuple.getScore();
    }
    
    
    Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zSet",1,5,1,2);
    iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score1 = typedTuple.getScore();
    }
  • reverseRangeWithScores :索引倒序排列区间值。
  • Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = redisTemplate.opsForZSet().reverseRangeWithScores("zSet",1,5);
    iterator = typedTupleSet.iterator();
    while (iterator.hasNext()){
        ZSetOperations.TypedTuple<Object> typedTuple = iterator.next();
        Object value = typedTuple.getValue();
        double score1 = typedTuple.getScore();
    }
  • reverseRank :获取倒序排列的索引值。
  • redisTemplate.opsForZSet().reverseRank("zSet","B");
  • intersectAndStore :获取2个变量的交集存放到第3个变量里面。| | 获取多个变量的交集存放到第3个变量里面。
  • redisTemplate.opsForZSet().intersectAndStore("zSet","typedTupleSet","intersectSet");
    
    List list = new ArrayList();
    list.add("typedTupleSet");
    redisTemplate.opsForZSet().intersectAndStore("zSet",list,"intersectListSet");
  • unionAndStore :获取2个变量的合集存放到第3个变量里面。| | 获取多个变量的合集存放到第3个变量里面。
  • redisTemplate.opsForZSet().unionAndStore("zSet","typedTupleSet","unionSet");
    
    redisTemplate.opsForZSet().unionAndStore("zSet",list,"unionListSet");
  • remove :批量移除元素根据元素值。
  • redisTemplate.opsForZSet().remove("unionListSet","A","B");
  • removeRangeByScore :根据分值移除区间元素。
  • redisTemplate.opsForZSet().removeRangeByScore("unionListSet",3,5);
  • removeRange :根据索引值移除区间元素。
  • redisTemplate.opsForZSet().removeRange("unionListSet",3,5);
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值