zSetOperations=redisTemplate.opsForZSet();redis的Zset数据类型方法大全(zSetOperations常用方法详细)

zSetOperations=redisTemplate.opsForZSet()

以下是 zSetOperations 接口中定义的所有方法及其详细说明:

  • void add(K key, V value, double score)
    • 将一个成员添加到有序集合中,并设置其分数。
    • 参数:
      • key:有序集合的键。
      • value:要添加的成员。
      • score:要设置的分数。
    • 返回值:无。
  • Long add(K key, Set> tuples)
    • 批量将成员和分数添加到有序集合中。
    • 参数:
      • key:有序集合的键。
      • tuples:要添加的成员和分数的集合。
    • 返回值:添加成功的成员数量。
    • 关于Set>集合:
// 创建一个存储 TypedTuple 的集合
Set<ZSetOperations.TypedTuple<V>> tuples = new HashSet<>();

// 创建 TypedTuple 对象并添加到集合中
ZSetOperations.TypedTuple<V> tuple1 = new DefaultTypedTuple<>(value1, score1);
tuples.add(tuple1);

ZSetOperations.TypedTuple<V> tuple2 = new DefaultTypedTuple<>(value2, score2);
tuples.add(tuple2);
  • Long remove(K key, Object... values)
    • 批量删除有序集合中的指定成员。
    • 参数:
      • key:有序集合的键。
      • values:要删除的多个成员,以逗号分隔。
    • 返回值:成功删除的成员数量。
  • Double incrementScore(K key, V value, double delta)
    • 为有序集合中的指定成员增加分数。
    • 参数:
      • key:有序集合的键。
      • value:要增加分数的成员。
      • delta:要增加的分数。
    • 返回值:增加后的分数。
  • Double incrementScore(K key, V value, long delta)
    • 为有序集合中的指定成员增加分数。
    • 参数:
      • key:有序集合的键。
      • value:要增加分数的成员。
      • delta:要增加的分数。
    • 返回值:增加后的分数。
  • Long zCard(K key)
    • 返回有序集合的成员数量。
    • 参数:
      • key:有序集合的键。
    • 返回值:有序集合的成员数量。
  • Long size(K key)
    • 返回有序集合的长度(成员数量)。
    • 参数:
      • key:有序集合的键。
    • 返回值:有序集合的长度。
  • Long rank(K key, Object o)
    • 返回有序集合中指定成员的排名(从0开始)。
    • 参数:
      • key:有序集合的键。
      • o:要查询排名的成员。
    • 返回值:成员的排名。
  • Double score(K key, Object o)
    • 返回有序集合中指定成员的分数。
    • 参数:
      • key:有序集合的键。
      • o:要查询分数的成员。
    • 返回值:成员的分数。
  • Set range(K key, long start, long end)
    • 返回指定排名范围内的有序集合成员。
    • 参数:
      • key:有序集合的键。
      • start:起始排名。
      • end:结束排名。
    • 返回值:指定排名范围内的有序集合成员。
  • Set> rangeWithScores(K key, long start, long end)
    • 返回指定排名范围内的有序集合成员以及成员的分数。
    • 参数:
      • key:有序集合的键。
      • start:起始排名。
      • end:结束排名。
    • 返回值:指定排名范围内的有序集合成员以及成员的分数。

例子:

Set<ZSetOperations.TypedTuple<String>> rankSet = zSetOperations.rangeWithScores("rank", 0, -1);
for(ZSetOperations.TypedTuple<String> rank : rankSet){
    Double score = rank.getScore();
    String value = rank.getValue();
}
  • Set rangeByScore(K key, double min, double max)
    • 返回分数范围内的有序集合成员。
    • 参数:
      • key:有序集合的键。
      • min:最小分数值。
      • max:最大分数值。
    • 返回值:分数范围内的有序集合成员。
  • Set rangeByScore(K key, double min, double max, long offset, long count)
    • 返回分数范围内的有序集合成员,并进行分页。
    • 参数:
      • key:有序集合的键。
      • min:最小分数值。
      • max:最大分数值。
      • offset:分页起始位置。
      • count:分页数量。
  • 返回值:分数范围内的有序集合成员。
  • Set> rangeByScoreWithScores(K key, double min, double max)
    • 返回分数范围内的有序集合成员以及成员的分数。
    • 参数:
      • key:有序集合的键。
      • min:最小分数值。
      • max:最大分数值。
    • 返回值:分数范围内的有序集合成员以及成员的分数。
  • Set> rangeByScoreWithScores(K key, double min, double max, long offset, long count)
    • 返回分数范围内的有序集合成员以及成员的分数,并进行分页。
    • 参数:
      • key:有序集合的键。
      • min:最小分数值。
      • max:最大分数值。
      • offset:分页起始位置。
      • count:分页数量。
    • 返回值:分数范围内的有序集合成员以及成员的分数。
  • Cursor> scan(K key, ScanOptions options)
    • 遍历整个有序集合。
    • 参数:
      • key:有序集合的键。
      • options:遍历选项。
    • 返回值:游标对象,可以用于逐个迭代获取有序集合的成员。
  • 例子
// 定义要扫描的有序集合的键
String key = "myZSet";

// 定义扫描选项,这里表示不指定匹配模式,扫描全部元素
ScanOptions options = ScanOptions.scanOptions().build();

// 开始进行扫描,返回一个游标对象
Cursor<ZSetOperations.TypedTuple<V>> cursor = redisTemplate.opsForZSet().scan(key, options);

// 逐批获取有序集合的成员和分数
while (cursor.hasNext()) {
    ZSetOperations.TypedTuple<V> tuple = cursor.next();
    V value = tuple.getValue();
    double score = tuple.getScore();
    
    // 对成员值和分数进行处理
    // ...
}

// 关闭游标,释放资源
cursor.close();
  • Long removeRange(K key, long start, long end)
    • 移除指定排名范围内的成员。
    • 参数:
      • key:有序集合的键。
      • start:起始排名。
      • end:结束排名。
    • 返回值:成功移除的成员数量。
  • Long removeRangeByScore(K key, double min, double max)
    • 移除指定分数范围内的成员。
    • 参数:
      • key:有序集合的键。
      • min:最小分数值。
      • max:最大分数值。
    • 返回值:成功移除的成员数量。

附录(redis的一些原生指令)

  • zadd  …
  • 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
  • zrange  [WITHSCORES]   
  • 返回有序集 key 中,下标在之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。
  • zrangebyscore key minmax [withscores] [limit offset count]
  • 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排
  • zrevrangebyscore key maxmin [withscores] [limit offset count]               
  • 同上,改为从大到小排列。
  • zincrby      为元素的score加上增量
  • zrem  删除该集合下,指定值的元素
  • zcount 统计该集合,分数区间内的元素个数
  • zrank 返回该值在集合中的排名,从0开始。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不太聪明的qtfj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值