一、RedisTemplate常用集合使用说明-boundZSetOps
BoundZSetOperations boundZSetOperations = redisTemplate.boundZSetOps("bzso");
1.add(V value, double score)
绑定键中添加值,同时指定值的分数
Java代码 收藏代码
boundZSetOperations.add("a",1);
boundZSetOperations.add("b",2);
2.range(long start, long end)
获取绑定键的指定区间值
Java代码 收藏代码
//集合中的值
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("集合中的值:" + v));
3.count(double min, double max)
获取从指定位置开始(起始下标不再为0),到结束位置位置的值个数
Java代码 收藏代码
//获取从指定位置开始(下标起始坐标为1)到结束位置为止的值个数
System.out.println("获取从指定位置开始(下标起始坐标为1)到结束位置为止的值个数:" + boundZSetOperations.count(1,2));
4.add(Set<ZSetOperations.TypedTuple> tuples)
以TypedTuple的方式新增值
Java代码 收藏代码
//通过TypedTuple方式新增数据
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);
boundZSetOperations.add(typedTupleSet);
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("通过TypedTuple方式新增数据:" + v));
5.incrementScore(V value, double delta)
自增长指定键的分数
Java代码 收藏代码
//自增长后的数据
boundZSetOperations.incrementScore("a",1);
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("自增长后的数据:" + v));
6.intersectAndStore(Collection otherKeys, K destKey)和intersectAndStore(K otherKey, K destKey)
比较特定键中相同的值并存储
Java代码 收藏代码
//获取相同值,并存储
boundZSetOperations.intersectAndStore("bzso1","bzso2");
redisTemplate.opsForZSet().range("bzso2",0,-1).forEach(v -> System.out.println("获取相同值,并存储" + v));
7.scan(ScanOptions options)
匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("C").build()匹配获取键位map1的键值对,不能模糊匹配。
Java代码 收藏代码
Cursor<ZSetOperations.TypedTuple> cursor = boundZSetOperations.scan(ScanOptions.NONE);
while (cursor.hasNext()){
ZSetOperations.TypedTuple typedTuple = cursor.next();
System.out.println("扫描绑定数据:" + typedTuple.getValue() + "--->" + typedTuple.getScore());
}
8.rangeByLex(RedisZSetCommands.Range range)
根据Range排序区间获取值
Java代码 收藏代码
//按照值来排序的取值,这个排序只有在有相同分数的情况下才能使用,如果有不同的分数则返回值不确定
RedisZSetCommands.Range range = new RedisZSetCommands.Range();
range.lte("b");
//range.gte("F");
boundZSetOperations.rangeByLex(range).forEach(v -> System.out.println("按照值来排序的取值:" + v));
9.rangeByLex(RedisZSetCommands.Range range, RedisZSetCommands.Limit limit)
根据Range排序区间和Limit设置的下标及设置的长度获取值
Java代码 收藏代码
//获取从设置下标开始的设置长度的元素值
RedisZSetCommands.Limit limit = new RedisZSetCommands.Limit();
limit.count(2);
//起始下标为0
limit.offset(1);
boundZSetOperations.rangeByLex(range,limit).forEach(v -> System.out.println("按照值来排序的限定取值:" + v));
10.rangeByScore(double min, double max)
根据分数区间值排序取值
Java代码 收藏代码
//按照分数排序
boundZSetOperations.rangeByScore(3,7).forEach(v -> System.out.println("按照分数排序:" + v));
11.rangeWithScores(long start, long end)
按照位置排序对指定区间取值和分数
Java代码 收藏代码
//按照位置排序取值和分数
Set<ZSetOperations.TypedTuple> tupleSet = boundZSetOperations.rangeWithScores(3,5);
tupleSet.forEach(v -> System.out.printf("按照位置排序取值和分数:%s-->%s\n",v.getValue(),v.getScore()));
12.rangeByScoreWithScores(double min, double max)
按照分数排序对指定区间取值和分数
Java代码 收藏代码
//按照分数位置排序取值和分数
Set<ZSetOperations.TypedTuple> scoreSet = boundZSetOperations.rangeByScoreWithScores(1,5);
scoreSet.forEach(v -> System.out.printf("按照分数位置排序取值和分数:%s-->%s\n",v.getValue(),v.getScore()));
13.reverseRange(long start, long end)
倒序排序获取指定区间的值
Java代码 收藏代码
//按照值来倒序取值
boundZSetOperations.reverseRange(0,3).forEach(v -> System.out.println("按照值来倒序取值:" + v));
14.reverseRangeByScore(double min, double max)
按照分数倒序排序获取区间取值
Java代码 收藏代码
//按照分数来倒序取值
boundZSetOperations.reverseRangeByScore(2,5).forEach(v -> System.out.println("按照分数来倒序取值:" + v));
15.reverseRangeWithScores(long start, long end)
倒序排序获取指定区间的值和分数
Java代码 收藏代码
//按照位置倒序取值和分数
tupleSet = boundZSetOperations.reverseRangeWithScores(2,5);
tupleSet.forEach(v -> System.out.printf("按照位置倒序取值和分数:%s-->%s\n",v.getValue(),v.getScore()));
- reverseRangeByScoreWithScores(double min, double max)
按照分数倒序排序获取指定区间的值和分数
Java代码 收藏代码
//按照分数位置倒序取值和分数
scoreSet = boundZSetOperations.reverseRangeByScoreWithScores(2,5);
scoreSet.forEach(v -> System.out.printf(“按照分数位置倒序取值和分数:%s–>%s\n”,v.getValue(),v.getScore()));
17.count(double min, double max)
统计分数在某个区间的个数
Java代码 收藏代码
//统计分数在某个区间的个数
System.out.println("统计分数在某个区间的个数:" + boundZSetOperations.count(2,5));
18.rank(Object o)
获取绑定键中的元素的下标
Java代码 收藏代码
//获取变量中元素的索引,下标开始位置为0
System.out.println("获取变量中元素的索引:" + boundZSetOperations.rank("b"));
19.score(Object o)
获取绑定键中元素的分数
Java代码 收藏代码
System.out.println("获取变量中元素的分数:" + boundZSetOperations.score("b"));
- zCard()
获取绑定键中元素的个数
Java代码 收藏代码
//获取变量中元素的个数
System.out.println(“获取变量中元素的个数:” + boundZSetOperations.zCard());
21.intersectAndStore(Collection otherKeys, K destKey)和intersectAndStore(K otherKey, K destKey)
比较相同的值并存储
Java代码 收藏代码
//intersectAndStore后的数据
boundZSetOperations.intersectAndStore("abc","bac");
redisTemplate.opsForSet().members("bac").forEach(v -> System.out.println("intersectAndStore后的数据:" + v));
//intersectAndStore集合后的数据
List list = new ArrayList<>(Arrays.asList("abc","acb"));
boundZSetOperations.intersectAndStore(list,"bac");
redisTemplate.opsForSet().members("bac").forEach(v -> System.out.println("intersectAndStore集合后的数据:" + v));
22.unionAndStore(Collection otherKeys, K destKey)和unionAndStore(K otherKey, K destKey)
合并所有的值并存储
Java代码 收藏代码
//unionAndStore后的数据
boundZSetOperations.unionAndStore("abc","bca");
redisTemplate.opsForZSet().range("bca",0,-1).forEach(v -> System.out.println("unionAndStore后的数据:" + v));
//unionAndStore集合后的数据
boundZSetOperations.unionAndStore(list,"bca");
redisTemplate.opsForZSet().range("bca",0,-1).forEach(v -> System.out.println("unionAndStore集合后的数据:" + v));
23.remove(Object… values)
按值批量删除绑定键中的元素
Java代码 收藏代码
//移除给定值中的变量
long removeCount = boundZSetOperations.remove("a","b");
System.out.println("移除给定值中的变量个数:" + removeCount);
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("移除给定值中的变量后剩余的值:" + v));
23.removeRange(long start, long end)
删除绑定键中按值排序的区间的值
Java代码 收藏代码
/移除区间值的变量
boundZSetOperations.removeRange(2,3);
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("移除区间值的变量后剩余的值:" + v));
24.removeRangeByScore(double min, double max)
按照分数排序删除区间的值
Java代码 收藏代码
//移除分数区间值的变量
boundZSetOperations.removeRangeByScore(3,5);
boundZSetOperations.range(0,-1).forEach(v -> System.out.println("移除分数区间值的变量后剩余的值:" + v));
二、RedisTemplate常用集合使用说明-boundListOps
//定义绑定的键
BoundListOperations boundListOperations = redisTemplate.boundListOps("lk");
1.leftPush(V value)和rightPush(V value)
在绑定键中添加值
Java代码 收藏代码
//在绑定的键中添加值
boundListOperations.leftPush("h");
boundListOperations.leftPush("i");
boundListOperations.rightPush("a");
boundListOperations.rightPush("b");
2.range(long start, long end)
获取绑定键中给定的区间值
Java代码 收藏代码
//获取绑定的键中的值
boundListOperations.range(0,-1).forEach(v -> System.out.println("获取绑定的键中的值" + v));
3.index(long index)
获取给定位置的值
Java代码 收藏代码
//获取特定位置的值
ystem.out.println("获取特定位置的值:" + boundListOperations.index(0));
4.leftPop()
弹出左边的值
Java代码 收藏代码
//弹出左边的值
System.out.println("弹出左边的值:" + boundListOperations.leftPop());
5.rightPop()
弹出右边的值
Java代码 收藏代码
//弹出右边的值
ystem.out.println("弹出右边的值:" + boundListOperations.rightPop());
6.leftPush(V pivot, V value)
在指定的第一个值出现的左边添加值
Java代码 收藏代码
//在指定的出现第一个值左边添加值
boundListOperations.leftPush("i","w");
boundListOperations.range(0,-1).forEach(v -> System.out.println("在指定的出现第一个值左边添加值:" + v));
7.rightPush(V pivot, V value)
在指定的第一个值出现的右边添加值
Java代码 收藏代码
//在指定的出现第一个值右边添加值
boundListOperations.rightPush("i","x");
boundListOperations.range(0,-1).forEach(v -> System.out.println("在指定的出现第一个值左边添加值:" + v));
8.leftPop(long timeout, TimeUnit unit)
在指定的时间后弹出左边的值
Java代码 收藏代码
//在指定的时间过后弹出左边的值
boundListOperations.leftPop(1, TimeUnit.SECONDS);
9.rightPop(long timeout, TimeUnit unit)
在指定的时间后弹出右边的值
Java代码 收藏代码
//在指定的时间过后弹出右边的值
oundListOperations.rightPop(1, TimeUnit.SECONDS);
10.leftPushAll(V… values)
在左边批量添加值
Java代码 收藏代码
//在左边批量添加值
boundListOperations.leftPushAll("y","g");
boundListOperations.range(0,-1).forEach(v -> System.out.println("在左边批量添加值:" + v));
11.rightPushAll(V… values)
在右边批量添加值
Java代码 收藏代码
//在右边批量添加值
boundListOperations.rightPushAll("b","r");
boundListOperations.range(0,-1).forEach(v -> System.out.println("在右边批量添加值:" + v));
12.leftPushIfPresent(V value)
在左边添加不存在的值
Java代码 收藏代码
//向左边添加不存在的值
boundListOperations.leftPushIfPresent("k");
boundListOperations.leftPushIfPresent(";");
boundListOperations.range(0,-1).forEach(v -> System.out.println("向左边添加不存在的值:" + v));
13.rightPushIfPresent(V value)
在右边添加不存在的值
Java代码 收藏代码
//向右边添加不存在的值
boundListOperations.rightPushIfPresent("k");
boundListOperations.rightPushIfPresent(";");
System.out.println("向右边添加不存在的值:" + boundListOperations.range(0,-1).toString());
14.remove(long count, Object value)
移除指定个数的值
Java代码 收藏代码
//移除指定值的个数
long removeCount = boundListOperations.remove(2,"i");
System.out.println("移除指定值的个数:" + removeCount);
System.out.println("移除指定值的个数后剩余的值:" + boundListOperations.range(0,-1).toString());
15.set(long index, V value)
在指定位置添加值
Java代码 收藏代码
//在指定位置设置值
boundListOperations.set(0,"j");
System.out.println("在指定位置设置值:" + boundListOperations.range(0,-1).toString());
16.trim(long start, long end)
截取原来区间的值为新值
Java代码 收藏代码
//截取指定区间位置的值
boundListOperations.trim(1,3);
System.out.println("截取指定区间位置的值:" + boundListOperations.range(0,-1).toString());
三、RedisTemplate常用集合使用说明-boundValueOps
BoundValueOperations boundValueOperations = redisTemplate.boundValueOps("bvo");
1.append(String value)
在原来值的末尾添加值
Java代码 收藏代码
boundValueOperations.append("a");
boundValueOperations.append("b");
2.get(long start, long end)
获取指定区间位置的值
Java代码 收藏代码
//获取从指定位置开始,到指定位置为止的值
System.out.println("获取从指定位置开始,到指定位置为止的值:" + boundValueOperations.get(0,2));
3.get()
获取字符串所有值
Java代码 收藏代码
//获取所有值
System.out.println("获取所有值:" + boundValueOperations.get());
4.set(V value)
给绑定键重新设置值
Java代码 收藏代码
//重新设置值
boundValueOperations.set("f");
System.out.println("重新设置值:" + boundValueOperations.get());
5.set(V value, long timeout, TimeUnit unit)
在指定时间后重新设置值
Java代码 收藏代码
//在指定时间后重新设置
boundValueOperations.set("wwww",5,TimeUnit.SECONDS);
System.out.println("在指定时间后重新设置:" + boundValueOperations.get());
6.set(V value, long offset)
截取原有值的指定长度后添加新值在后面
Java代码 收藏代码
//截取原有值的指定长度后添加新值在后面
boundValueOperations.set("nnnnnn",3);
System.out.println("截取原有值的指定长度后添加新值在后面:" + boundValueOperations.get());
7.setIfAbsent(V value)
没有值存在则添加
Java代码 收藏代码
//没有值存在则添加
boundValueOperations.setIfAbsent("mmm");
System.out.println("没有值存在则添加:" + boundValueOperations.get());
8.getAndSet(V value)
获取原来的值并重新赋新值
Java代码 收藏代码
//获取原来的值,并覆盖为新值
Object object = boundValueOperations.getAndSet("yyy");
System.out.print("获取原来的值" + object);
System.out.println(",覆盖为新值:" + boundValueOperations.get());
9.size()
获取绑定值的长度
Java代码 收藏代码
System.out.println("value值的长度:" + boundValueOperations.size());
10.increment(double delta)和increment(long delta)
自增长键值,前提是绑定值的类型是doule或long类型
Java代码 收藏代码
//自增长只能在为数字类型的时候才可以
boundValueOperations.increment(1);
System.out.println("自增长只能在为数字类型的时候才可以:" + boundValueOperations.get());
四、RedisTemplate常用集合使用说明-boundSetOps
BoundSetOperations boundSetOperations = redisTemplate.boundSetOps("bso");
1.add(V… values)和members()
批量添加值,获取所有值
Java代码 收藏代码
//添加新值后查看所有的值
boundSetOperations.add("a","b","c");
boundSetOperations.members().forEach(v -> System.out.println("添加新值后查看所有的值:" + v));
2.scan(ScanOptions options)
匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("c").build()匹配获取键位map1的键值对,不能模糊匹配。
Java代码 收藏代码
Cursor<String> cursor = boundSetOperations.scan(ScanOptions.NONE);
while (cursor.hasNext()){
System.out.println("遍历所有值:" + cursor.next());
}
3.randomMember()
随机获取一个值
Java代码 收藏代码
System.out.println("随机获取一个值:" + boundSetOperations.randomMember());
4.randomMembers(long count)
随机获取指定数量的值
Java代码 收藏代码
System.out.println("随机获取指定数量的值:" + boundSetOperations.randomMembers(2));
5.distinctRandomMembers(long count)
获取唯一的随机数量值
Java代码 收藏代码
System.out.println("获取唯一的随机数量值:" + boundSetOperations.distinctRandomMembers(2));
6.diff(Collection keys)
比较多个特定键中的不同值
Java代码 收藏代码
//这里比较的也应该是特定的集合名称,且名称不能和已经在比较的set集合中存在,否则报错
Set list = new HashSet<>();
list.add("bso1");
boundSetOperations.diff(list).forEach(v -> System.out.println("比较给定集合中的set的不同元素:" + v));
7.diff(K key)
比较2个特定键中的不同值
Java代码 收藏代码
boundSetOperations.diff("bso2").forEach(v -> System.out.println("比较给定set的不同元素:" + v));
8.diffAndStore(Collection keys, K destKey)和diffAndStore(K keys, K destKey)
比较键中的不同值并存储
Java代码 收藏代码
//比较不同集合并存储
boundSetOperations.diffAndStore("bso2","bso3");
redisTemplate.opsForSet().members("bso3").forEach(v -> System.out.println("比较不同set并存储:" + v));
9.intersect(Collection keys)和intersect(K key)
比较键中的相同值
Java代码 收藏代码
//比较给定集合中的相同值
boundSetOperations.intersect("bso2").forEach(v -> System.out.println("比较给定集合中的相同值:" + v));
boundSetOperations.intersect(list).forEach(v -> System.out.println("比较给定集合中的相同值:" + v));
10.intersectAndStore(Collection keys, K destKey)和intersectAndStore(K key, K destKey)
比较键中的相同值并存储
Java代码 收藏代码
//比较给定集合中的相同值并存储
boundSetOperations.intersectAndStore("bso3","bso4");
redisTemplate.opsForSet().members("bso4").forEach(v -> System.out.println("比较给定set的相同元素:" + v));
11.union(Collection keys)和union(K key)
将特定键中的所有值合并
Java代码 收藏代码
//将给定集合中的所有值合并
boundSetOperations.union("bso2").forEach(v -> System.out.println("将给定集合中的所有值合并:" + v));
boundSetOperations.union(list).forEach(v -> System.out.println("将给定集合中的所有值合并:" + v));
12.unionAndStore(Collection keys, K destKey)和unionAndStore(K key, K destKey)
将特定键中的所有值合并并存储
Java代码 收藏代码
boundSetOperations.unionAndStore("bso3","bso5");
redisTemplate.opsForSet().members("bso5").forEach(v -> System.out.println("将给定集合中的所有值合并:" + v));
13.move(K destKey, V value)
将value值转移到特定键中
Java代码 收藏代码
//将集合中的value值移动到另外一个集合中
boolean moveSuc = boundSetOperations.move("bso6","a");
System.out.println("将集合中的值移动到另外一个集合中是否成功:" + moveSuc);
redisTemplate.opsForSet().members("bso6").forEach(v -> System.out.println("将集合中的值移动到另外一个集合中:" + v));
boundSetOperations.members().forEach(v -> System.out.println("将集合中的值移动到另外一个集合中原集合剩余的值:" + v));
14.pop()
弹出集合中的值
Java代码 收藏代码
//弹出集合中的值
Object p = boundSetOperations.pop();
System.out.println("弹出集合中的值:" + p);
boundSetOperations.members().forEach(v -> System.out.println("弹出集合中的值原集合剩余的值:" + v));
15.remove(Object… values)
批量移除元素
Java代码 收藏代码
//移除特定元素
long removeCount = boundSetOperations.remove("c");
System.out.println("移除特定元素个数:" + removeCount);
boundSetOperations.members().forEach(v -> System.out.println("移除特定元素个数后原集合剩余的值:" + v));
五、 BoundHashOperations<String, String, Object> boundHashOperations = redisTemplate.boundHashOps(“li”);
1、put(HK key, HV value)
新增元素到指定键中
Java代码 收藏代码
boundHashOperations.put("ww","i");
boundHashOperations.put("w1","i1");
boundHashOperations.put("w2","i2");
2、getKey()
获取指定键中的值
Java代码 收藏代码
//获取设置的绑定key值
System.out.println("获取设置的绑定key值:" + boundHashOperations.getKey());
3、values()
获取map中的值jdk要求1.8及以上
Java代码 收藏代码
//获取map中的value值
boundHashOperations.values().forEach(v -> System.out.println("获取map中的value值" + v));
4、entries()
获取map中的键值对
Java代码 收藏代码
//获取map键值对
boundHashOperations.entries().forEach((m,n) -> System.out.println("获取map键值对:" + m + "-" + n));
5、get(Object member)
获取map键中的值
Java代码 收藏代码
//获取map键的值
System.out.println("获取map建的值:" + boundHashOperations.get("w1"));
6、keys()
获取map的键
Java代码 收藏代码
//获取map的键
boundHashOperations.keys().forEach(v -> System.out.println("获取map的键:" + v));
7、multiGet(Collection keys)
根据map键批量获取map值
Java代码 收藏代码
//根据map键批量获取map值
List list = new ArrayList<>(Arrays.asList("ww","w1"));
boundHashOperations.multiGet(list).forEach(v -> System.out.println("根据map键批量获取map值:" + v));
8、putAll(Map<? extends HK,? extends HV> m)
批量添加键值对
Java代码 收藏代码
//批量添加键值对
Map map = new HashMap<>();
map.put("m1","n1");
map.put("m2","n2");
boundHashOperations.putAll(map);
boundHashOperations.entries().forEach((m,n) -> System.out.println("批量添加键值对:" + m + "-" + n));
9、increment(HK key, long delta)
自增长map键的值
Java代码 收藏代码
//自增长map键的值
boundHashOperations.increment("c",1);
System.out.println("自增长map键的值:" + boundHashOperations.get("c"));
10、putIfAbsent(HK key, HV value)
添加不存在的map键
Java代码 收藏代码
//如果map键不存在,则新增,存在,则不变
boundHashOperations.putIfAbsent("m2","n2-1");
boundHashOperations.putIfAbsent("m3","n3");
boundHashOperations.entries().forEach((m,n) -> System.out.println("新增不存在的键值对:" + m + "-" + n));
11、size()
获取特定键对应的map大小
Java代码 收藏代码
//查看绑定建的map大小
System.out.println("查看绑定建的map大小:" + boundHashOperations.size());
12、scan(ScanOptions options)
扫描特定键所有值
Java代码 收藏代码
//遍历绑定键获取所有值
Cursor<Map.Entry<String, Object>> cursor = boundHashOperations.scan(ScanOptions.NONE);
while (cursor.hasNext()){
Map.Entry<String, Object> entry = cursor.next();
System.out.println("遍历绑定键获取所有值:" + entry.getKey() + "---" + entry.getValue());
}
13、delete(Object… keys)
批量删除map值
Java代码 收藏代码
long delSize = boundHashOperations.delete("m3","m2");
System.out.println("删除的键的个数:" + delSize);
boundHashOperations.entries().forEach((m,n) -> System.out.println("删除后剩余map键值对:" + m + "-" + n));