【Redis】Redis使用和RedisTemplate的方法介绍
•
数据库
目录
基本使用
RedisTemplate.opsForList()的方法介绍
RedisTemplate.opsForValue()的方法介绍
RedisTemplate.opsForSet()的方法介绍
RedisTemplate.opsForHash()的方法介绍
RedisTemplate.opsForZSet() 的方法介绍
基本使用
添加坐标
org.springframework.boot
spring-boot-starter-data-redis
2.7.13
注入RedisTemplate注解
@Autowired private RedisTemplate redisTemplate;
使用写就行了 当然这是基础用法
RedisTemplate.opsForList()的方法介绍
- leftPush :从集合左边插入值 | | 从集合左边开始在v值后边插入新值v1
-
redisTemplate.opsForList().leftPush("list","a"); redisTemplate.opsForList().leftPush("list", "a", "e"); - leftPushAll :从左边批量插入新值 | | 从左边批量插入新值(同上)
-
List 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 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 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 intersection = redisTemplate.opsForSet().intersect("set1", "set2"); - union:计算多个集合的并集,并返回结果集合
-
Set union = redisTemplate.opsForSet().union("set1", "set2"); - difference:计算两个集合的差集,并返回结果集合
-
Set 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> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.scanOptions().match("map1").build()); redisTemplate.opsForHash().scan("hashValue",ScanOptions.NONE); while (cursor.hasNext()) { Map.Entry 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 typedTuple1 = new DefaultTypedTuple("E",6.0); ZSetOperations.TypedTuple typedTuple2 = new DefaultTypedTuple("F",7.0); ZSetOperations.TypedTuple typedTuple3 = new DefaultTypedTuple("G",5.0); Set<ZSetOperations.TypedTuple> typedTupleSet = new HashSet<ZSetOperations.TypedTuple>(); 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> typedTupleSet = redisTemplate.opsForZSet().rangeWithScores("typedTupleSet",1,3); Iterator<ZSetOperations.TypedTuple> iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple typedTuple = iterator.next(); Object value = typedTuple.getValue(); double score = typedTuple.getScore(); } - rangeByScoreWithScores :获取RedisZSetCommands.Tuples的区间值通过分值。 | | 获取RedisZSetCommands.Tuples的区间值从给定下标和给定长度获取最终值通过分值。
-
Set<ZSetOperations.TypedTuple> typedTupleSet = redisTemplate.opsForZSet().rangeByScoreWithScores("typedTupleSet",5,8); iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple typedTuple = iterator.next(); Object value = typedTuple.getValue(); double score = typedTuple.getScore(); } Set<ZSetOperations.TypedTuple> typedTupleSet = redisTemplate.opsForZSet().rangeByScoreWithScores("typedTupleSet",5,8,1,1); iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple 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> cursor = redisTemplate.opsForZSet().scan("zSet", ScanOptions.NONE); while (cursor.hasNext()){ ZSetOperations.TypedTuple 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> typedTupleSet = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zSet",1,5); iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple typedTuple = iterator.next(); Object value = typedTuple.getValue(); double score1 = typedTuple.getScore(); } Set<ZSetOperations.TypedTuple> typedTupleSet = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zSet",1,5,1,2); iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple typedTuple = iterator.next(); Object value = typedTuple.getValue(); double score1 = typedTuple.getScore(); } - reverseRangeWithScores :索引倒序排列区间值。
-
Set<ZSetOperations.TypedTuple> typedTupleSet = redisTemplate.opsForZSet().reverseRangeWithScores("zSet",1,5); iterator = typedTupleSet.iterator(); while (iterator.hasNext()){ ZSetOperations.TypedTuple 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);
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/cc0107a04c.html
