redis 操作zset 有序集合常用命令

Posted quietguoguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 操作zset 有序集合常用命令相关的知识,希望对你有一定的参考价值。

有序集合类型(Zset)

Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。

不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

zadd

语法:zadd key [NX|XX] [CH] [INCR] score member [score member…]

ZADD 参数(options) (>= Redis 3.0.2)

ZADD 命令在key后面分数/成员(score/member)对前面支持一些参数,他们是:

XX: 仅仅更新存在的成员,不添加新成员。

NX: 不更新存在的成员。只添加新成员。

CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意 思)。

更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分 数将不被计算在内。

注:在通常情况下,ZADD返回值只计算新添加成员的数量。

INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。

redis


redis

zincrby

语法:ZINCRBY key increment member

作用:对有序集合中指定成员的分数加上增量 increment

可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。

当 key 不存在,或分数不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。

分数值可以是整数值或双精度浮点数。


redis


zrange

语法:zrange key startIndex endIndex [WITHSCORES]

功能:查询有序集合,指定区间的内的元素。集合成员按score值从小到大来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。

返回值:指定区间的成员组成的集合。


zrangebyscore

语法:zrangebyscore key min max [WITHSCORES ] [LIMIT offset count]

功能:获取有序集 key 中,所有 score 值介于 min 和 max 之间(包括min和max)的成员,有序成员是按递增(从小到大)排序;

  使用符号”(“ 表示包括min但不包括max;

  withscores 显示score和 value;

      limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。

返回值:指定区间的集合数据


zrevrange

语法:zrevrange key startIndex endIndex [WITHSCORES]

功能:查询有序集合,指定区间的内的元素。集合成员按score值从大到小来排序;startIndex和endIndex都是从0开始表示第一个元素,1表示第二个元素,以此类推; startIndex和endIndex都可以取负数,表示从后往前取,-1表示倒数第一个元素;WITHSCORES选项让score和value一同返回。

返回值:指定区间的成员组成的集合。


zrevrangebyscore

语法:zrevrangebyscore key max min  [WITHSCORES ] [LIMIT offset count]

功能:获取有序集 key 中,所有 score 值介于 max 和 min 之间(包括max和min)的成员,有序成员是按递减(从大到小)排序;

  使用符号”(“ 表示不包括min和max;

  withscores 显示score和 value;

      limit用来限制返回结果的数量和区间,在结果集中从第offset个开始,取count个。

返回值:指定区间的集合数据


zrem

语法:zrem key member [member…]

功能:删除有序集合 key 中的一个或多个成员,不存在的成员被忽略。

返回值:被成功删除的成员数量,不包括被忽略的成员。


zcard

语法:zcard key

作用:获取有序集 key 的元素成员的个数。

返回值:key存在,返回集合元素的个数; key不存在,返回0。


redis

zcount

语法:zcount key min max

功能:返回有序集 key 中, score 值在 min 和 max 之间(包括 score 值等于 min 或 max )的成员的数量。

返回值:指定有序集合中分数在指定区间内的元素数量。


redis

zrank

语法:zrank key member

功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从小到大顺序排列,从0开始排名,score最小的是0 。

返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。


zrevrank

语法:zrevrank key member

功能:获取有序集 key 中成员 member 的排名,有序集成员按 score 值从大到小顺序排列,从0开始排名,score最大的是0 。

返回值:指定元素在有序集合中的排名;如果指定元素不存在,返回nil。


redis

zscore

语法:zscore key member

功能:获取有序集合key中元素member的分数。

返回值:返回指定有序集合元素的分数。


redis


以上是关于redis 操作zset 有序集合常用命令的主要内容,如果未能解决你的问题,请参考以下文章

[Redis6]常用数据类型_Zset有序集合

Redis的有序集合操作命令

redis 常用命令

Redis—列表(List)集合(Set)哈希(Hash)有序集合 Zset

Reids 学习有序集合 Zset 学习

Reids 学习有序集合 Zset 学习