RedisTemplate常用集合使用说明-boundZSetOps(十一)

首先要定义一个BoundZSetOperations

Java代码

收藏代码
1.BoundZSetOperations boundZSetOperations = redisTemplate.boundZSetOps(“bzso”);

1.add(V value, double score)

 绑定键中添加值,同时指定值的分数

Java代码

收藏代码
1.boundZSetOperations.add(“a”,1);
2.boundZSetOperations.add(“b”,2);

2.range(long start, long end)

获取绑定键的指定区间值

Java代码

收藏代码
1.//集合中的值
2.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“集合中的值:” + v));

3.count(double min, double max)

 获取从指定位置开始(起始下标不再为0),到结束位置位置的值个数

Java代码

收藏代码
1.//获取从指定位置开始(下标起始坐标为1)到结束位置为止的值个数
2.System.out.println(“获取从指定位置开始(下标起始坐标为1)到结束位置为止的值个数:” + boundZSetOperations.count(1,2));

4.add(Set<ZSetOperations.TypedTuple> tuples)

以TypedTuple的方式新增值

Java代码

收藏代码
1.//通过TypedTuple方式新增数据
2.ZSetOperations.TypedTuple typedTuple1 = new DefaultTypedTuple(“E”,6.0);
3.ZSetOperations.TypedTuple typedTuple2 = new DefaultTypedTuple(“F”,7.0);
4.ZSetOperations.TypedTuple typedTuple3 = new DefaultTypedTuple(“G”,5.0);
5.Set<ZSetOperations.TypedTuple> typedTupleSet = new HashSet<ZSetOperations.TypedTuple>();
6.typedTupleSet.add(typedTuple1);
7.typedTupleSet.add(typedTuple2);
8.typedTupleSet.add(typedTuple3);
9.boundZSetOperations.add(typedTupleSet);
10.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“通过TypedTuple方式新增数据:” + v));

5.incrementScore(V value, double delta)

自增长指定键的分数

Java代码

收藏代码
1.//自增长后的数据
2.boundZSetOperations.incrementScore(“a”,1);
3.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“自增长后的数据:” + v));

6.intersectAndStore(Collection otherKeys, K destKey)和intersectAndStore(K otherKey, K destKey)

 比较特定键中相同的值并存储

Java代码

收藏代码
1.//获取相同值,并存储
2.boundZSetOperations.intersectAndStore(“bzso1”,“bzso2”);
3.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代码

收藏代码
1.Cursor<ZSetOperations.TypedTuple> cursor = boundZSetOperations.scan(ScanOptions.NONE);
2.while (cursor.hasNext()){
3. ZSetOperations.TypedTuple typedTuple = cursor.next();
4. System.out.println(“扫描绑定数据:” + typedTuple.getValue() + “—>” + typedTuple.getScore());
5.}

8.rangeByLex(RedisZSetCommands.Range range)

 根据Range排序区间获取值

Java代码

收藏代码
1.//按照值来排序的取值,这个排序只有在有相同分数的情况下才能使用,如果有不同的分数则返回值不确定
2.RedisZSetCommands.Range range = new RedisZSetCommands.Range();
3.range.lte(“b”);
4.//range.gte(“F”);
5.boundZSetOperations.rangeByLex(range).forEach(v -> System.out.println(“按照值来排序的取值:” + v));

9.rangeByLex(RedisZSetCommands.Range range, RedisZSetCommands.Limit limit)

 根据Range排序区间和Limit设置的下标及设置的长度获取值

Java代码

收藏代码
1.//获取从设置下标开始的设置长度的元素值
2.RedisZSetCommands.Limit limit = new RedisZSetCommands.Limit();
3.limit.count(2);
4.//起始下标为0
5.limit.offset(1);
6.boundZSetOperations.rangeByLex(range,limit).forEach(v -> System.out.println(“按照值来排序的限定取值:” + v));

10.rangeByScore(double min, double max)

 根据分数区间值排序取值

Java代码

收藏代码
1.//按照分数排序
2.boundZSetOperations.rangeByScore(3,7).forEach(v -> System.out.println(“按照分数排序:” + v));

11.rangeWithScores(long start, long end)

按照位置排序对指定区间取值和分数

Java代码

收藏代码
1.//按照位置排序取值和分数
2.Set<ZSetOperations.TypedTuple> tupleSet = boundZSetOperations.rangeWithScores(3,5);
3.tupleSet.forEach(v -> System.out.printf(“按照位置排序取值和分数:%s–>%s\n”,v.getValue(),v.getScore()));

12.rangeByScoreWithScores(double min, double max)

按照分数排序对指定区间取值和分数

Java代码

收藏代码
1.//按照分数位置排序取值和分数
2.Set<ZSetOperations.TypedTuple> scoreSet = boundZSetOperations.rangeByScoreWithScores(1,5);
3.scoreSet.forEach(v -> System.out.printf(“按照分数位置排序取值和分数:%s–>%s\n”,v.getValue(),v.getScore()));

13.reverseRange(long start, long end)

  倒序排序获取指定区间的值

Java代码

收藏代码
1.//按照值来倒序取值
2.boundZSetOperations.reverseRange(0,3).forEach(v -> System.out.println(“按照值来倒序取值:” + v));

14.reverseRangeByScore(double min, double max)

 按照分数倒序排序获取区间取值

Java代码

收藏代码
1.//按照分数来倒序取值
2.boundZSetOperations.reverseRangeByScore(2,5).forEach(v -> System.out.println(“按照分数来倒序取值:” + v));

15.reverseRangeWithScores(long start, long end)

 倒序排序获取指定区间的值和分数

Java代码

收藏代码
1.//按照位置倒序取值和分数
2.tupleSet = boundZSetOperations.reverseRangeWithScores(2,5);
3.tupleSet.forEach(v -> System.out.printf(“按照位置倒序取值和分数:%s–>%s\n”,v.getValue(),v.getScore()));

  1. reverseRangeByScoreWithScores(double min, double max)

    按照分数倒序排序获取指定区间的值和分数

Java代码

收藏代码
1.//按照分数位置倒序取值和分数
2.scoreSet = boundZSetOperations.reverseRangeByScoreWithScores(2,5);
3.scoreSet.forEach(v -> System.out.printf(“按照分数位置倒序取值和分数:%s–>%s\n”,v.getValue(),v.getScore()));

17.count(double min, double max)

 统计分数在某个区间的个数

Java代码

收藏代码
1.//统计分数在某个区间的个数
2.System.out.println(“统计分数在某个区间的个数:” + boundZSetOperations.count(2,5));

18.rank(Object o)

  获取绑定键中的元素的下标

Java代码

收藏代码
1.//获取变量中元素的索引,下标开始位置为0
2.System.out.println(“获取变量中元素的索引:” + boundZSetOperations.rank(“b”));

19.score(Object o)

 获取绑定键中元素的分数

Java代码

收藏代码
1.System.out.println(“获取变量中元素的分数:” + boundZSetOperations.score(“b”));

  1. zCard()

    获取绑定键中元素的个数

Java代码

收藏代码
1.//获取变量中元素的个数
2.System.out.println(“获取变量中元素的个数:” + boundZSetOperations.zCard());

21.intersectAndStore(Collection otherKeys, K destKey)和intersectAndStore(K otherKey, K destKey)

 比较相同的值并存储

Java代码

收藏代码
1.//intersectAndStore后的数据
2.boundZSetOperations.intersectAndStore(“abc”,“bac”);
3.redisTemplate.opsForSet().members(“bac”).forEach(v -> System.out.println(“intersectAndStore后的数据:” + v));
4.
5.//intersectAndStore集合后的数据
6.List list = new ArrayList<>(Arrays.asList(“abc”,“acb”));
7.boundZSetOperations.intersectAndStore(list,“bac”);
8.redisTemplate.opsForSet().members(“bac”).forEach(v -> System.out.println(“intersectAndStore集合后的数据:” + v));

22.unionAndStore(Collection otherKeys, K destKey)和unionAndStore(K otherKey, K destKey)

合并所有的值并存储

Java代码

收藏代码
1.//unionAndStore后的数据
2.boundZSetOperations.unionAndStore(“abc”,“bca”);
3.redisTemplate.opsForZSet().range(“bca”,0,-1).forEach(v -> System.out.println(“unionAndStore后的数据:” + v));
4.
5.//unionAndStore集合后的数据
6.boundZSetOperations.unionAndStore(list,“bca”);
7.redisTemplate.opsForZSet().range(“bca”,0,-1).forEach(v -> System.out.println(“unionAndStore集合后的数据:” + v));

23.remove(Object… values)

 按值批量删除绑定键中的元素

Java代码

收藏代码
1.//移除给定值中的变量
2.long removeCount = boundZSetOperations.remove(“a”,“b”);
3.System.out.println(“移除给定值中的变量个数:” + removeCount);
4.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“移除给定值中的变量后剩余的值:” + v));

23.removeRange(long start, long end)

 删除绑定键中按值排序的区间的值

Java代码

收藏代码
1./移除区间值的变量
2.boundZSetOperations.removeRange(2,3);
3.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“移除区间值的变量后剩余的值:” + v));

24.removeRangeByScore(double min, double max)

 按照分数排序删除区间的值

Java代码

收藏代码
1.//移除分数区间值的变量
2.boundZSetOperations.removeRangeByScore(3,5);
3.boundZSetOperations.range(0,-1).forEach(v -> System.out.println(“移除分数区间值的变量后剩余的值:” + v));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值