目录
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);