ZADD

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

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

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

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

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

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

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

Note

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

可用版本:

>= 1.2.0

时间复杂度:

O(M*log(N)), N 是有序集的基数, M 为成功添加的新成员的数量。

返回值:

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

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

原文: https://wizardforcel.gitbooks.io/redis-doc/content/ref/100.html