【Go 语言社区】Redis(ZADD)简单排名

时间:2022-05-04
本文章向大家介绍【Go 语言社区】Redis(ZADD)简单排名,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Redis

ZADD key score member [[score member] [score member] ...]

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

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

如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。

当 key 存在但不是有序集类型时,返回一个错误。

对有序集的更多介绍请参见 sorted set 。

  • 可用版本:
  • >= 1.2.0
  • 时间复杂度:
  • O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。
  • 返回值:
  • 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。
  • # 添加单个元素redis> ZADD page_rank 10 google.com (integer) 1# 添加多个元素redis> ZADD page_rank 9 baidu.com 8 bing.com (integer) 2 redis> ZRANGE page_rank 0 -1 WITHSCORES 1) "bing.com"2) "8"3) "baidu.com"4) "9"5) "google.com"6) "10"# 添加已存在元素,且 score 值不变redis> ZADD page_rank 10 google.com (integer) 0 redis> ZRANGE page_rank 0 -1 WITHSCORES # 没有改变1) "bing.com"2) "8"3) "baidu.com"4) "9"5) "google.com"6) "10"# 添加已存在元素,但是改变 score 值redis> ZADD page_rank 6 bing.com (integer) 0 redis> ZRANGE page_rank 0 -1 WITHSCORES # bing.com 元素的 score 值被改变1) "bing.com"2) "6"3) "baidu.com"4) "9"5) "google.com"6) "10"

ZREVRANGE key start stop [WITHSCORES]

返回有序集 key 中,指定区间内的成员。

其中成员的位置按 score 值递减(从大到小)来排列。

具有相同 score 值的成员按字典序的逆序( reverse lexicographical order )排列。

除了成员按 score 值递减的次序排列这一点外, ZREVRANGE 命令的其他方面和ZRANGE 命令一样。

  • 可用版本:
  • >= 1.2.0
  • 时间复杂度:
  • O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。
  • 返回值:
  • 指定区间内,带有 score 值(可选)的有序集成员的列表。
redis> ZRANGE salary 0 -1 WITHSCORES        
# 递增排列1) "peter"2) "3500"3) "tom"4) "4000"5) "jack"6) "5000"redis> ZREVRANGE salary 0 -1 WITHSCORES     
# 递减排列1) "jack"2) "5000"3) "tom"4) "4000"5) "peter"6) "3500"