ZADD key score member [[score member] [score member] …]

可用版本: >= 1.2.0
时间复杂度: O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。

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

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

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

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

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

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

Note

在 Redis 2.4 版本以前, ZADD 每次只能添加一个元素。

返回值

被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。

代码示例

  1. # 添加单个元素
  2.  
  3. redis> ZADD page_rank 10 google.com
  4. (integer) 1
  5.  
  6.  
  7. # 添加多个元素
  8.  
  9. redis> ZADD page_rank 9 baidu.com 8 bing.com
  10. (integer) 2
  11.  
  12. redis> ZRANGE page_rank 0 -1 WITHSCORES
  13. 1) "bing.com"
  14. 2) "8"
  15. 3) "baidu.com"
  16. 4) "9"
  17. 5) "google.com"
  18. 6) "10"
  19.  
  20.  
  21. # 添加已存在元素,且 score 值不变
  22.  
  23. redis> ZADD page_rank 10 google.com
  24. (integer) 0
  25.  
  26. redis> ZRANGE page_rank 0 -1 WITHSCORES # 没有改变
  27. 1) "bing.com"
  28. 2) "8"
  29. 3) "baidu.com"
  30. 4) "9"
  31. 5) "google.com"
  32. 6) "10"
  33.  
  34.  
  35. # 添加已存在元素,但是改变 score 值
  36.  
  37. redis> ZADD page_rank 6 bing.com
  38. (integer) 0
  39.  
  40. redis> ZRANGE page_rank 0 -1 WITHSCORES # bing.com 元素的 score 值被改变
  41. 1) "bing.com"
  42. 2) "6"
  43. 3) "baidu.com"
  44. 4) "9"
  45. 5) "google.com"
  46. 6) "10"