码迷,mamicode.com
首页 > 其他好文 > 详细

Redis命令学习-SortedSet(有序集合)

时间:2015-06-23 21:37:35      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

     ZADD key score  member[score  member ... ]:将一个或多个member元素及其score值加入到有序集key中。如果member已经是有序集合中的值,则更新score。score是整数值,双精度值。如果key不存在,则创建一个有序集合,并加入。如果key不是一个有序集合,则返回一个错误。

    返回值:成功添加的数量,不包含已经存在和更新的成员。   

  1. 127.0.0.1:6379> ZADD page_rank 10 google.com

  2. (integer) 1

  3. 127.0.0.1:6379> ZADD page_rank 9 baidu.com 8 bing.com

  4. (integer) 2

  5. 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES

  6. 1) "bing.com"

  7. 2) "8"

  8. 3) "baidu.com"

  9. 4) "9"

  10. 5) "google.com"

  11. 6) "10"

  12. 127.0.0.1:6379> ZADD page_rank 10 google.com

  13. (integer) 0

  14. 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES

  15. 1) "bing.com"

  16. 2) "8"

  17. 3) "baidu.com"

  18. 4) "9"

  19. 5) "google.com"

  20. 6) "10"

  21. 127.0.0.1:6379>   

    ZCARD key:返回有序集合集key的基数。

    返回值:当key存在并且是有序集合时,返回key的基数。当key不存在时,返回0。

  1. 127.0.0.1:6379> ZCARD page_rank

  2. (integer) 3

  3. 127.0.0.1:6379> EXISTS none_exists_key

  4. (integer) 0

  5. 127.0.0.1:6379> ZCARD none_exists_key

  6. (integer) 0

    ZCOUNT key min max:返回有序集合Key中,score在min, max包含两者的个数。

    返回值:score在[min, max]中的个数。

  1. 127.0.0.1:6379> ZCOUNT page_rank 0 -1

  2. (integer) 0

  3. 127.0.0.1:6379> ZCOUNT page_rank 0 10

  4. (integer) 3

    ZINCRBY key increment member:为有序集key的成员member的score值加上增量member。当key不存在,或member不是key 的成员时,相当于执行ZADD key increment member。

    返回值:member成员新的score值。

  1. 127.0.0.1:6379> ZSCORE salary tom

  2. (nil)

  3. 127.0.0.1:6379> ZINCRBY salary 2000 tom

  4. "2000"

  5. 127.0.0.1:6379> ZSCORE salary tom

  6. "2000"

  7. 127.0.0.1:6379> ZINCRBY salary 2000 tom

  8. "4000"

  9. 127.0.0.1:6379> ZSCORE salary tom

  10. "4000"

    ZRANG key start stop [WITHSCORES]:返回有序集合,指定区间内的key的值。其中成员的位置按score值递增排序。可以通过WITHSCORE参数,让成员和score一起返回。

    返回值:指定区间内,有序集合列表。

    

  1. 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES

  2. 1) "bing.com"

  3. 2) "8"

  4. 3) "baidu.com"

  5. 4) "9"

  6. 5) "google.com"

  7. 6) "10"

  8. 127.0.0.1:6379> ZRANGE page_rank 1 2 WITHSCORES

  9. 1) "baidu.com"

  10. 2) "9"

  11. 3) "google.com"

  12. 4) "10"

  13. 127.0.0.1:6379> ZRANGE page_rank 2 100 WITHSCORES

  14. 1) "google.com"

  15. 2) "10"

    ZRANGEBYSCORE key min max[WITHSCORES] [LIMITOFFSET COUNT]:返回有序集合中,值介于min max之间的值,有序集合按score值递增排列。

    返回值:指定区间内,有序成员列表。

  1. 127.0.0.1:6379> ZADD salary 2500 jack

  2. (integer) 1

  3. 127.0.0.1:6379> ZADD salary 2500 tom

  4. (integer) 0

  5. 127.0.0.1:6379> ZADD salary 12000 peter

  6. (integer) 1

  7. 127.0.0.1:6379> ZADD salary 100 jery

  8. (integer) 1

  9. 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf

  10. 1) "jery"

  11. 2) "jack"

  12. 3) "tom"

  13. 4) "peter"

  14. 127.0.0.1:6379> ZRANGEBYSCORE salary -inf 5000 WITHSCORES

  15. 1) "jery"

  16. 2) "100"

  17. 3) "jack"

  18. 4) "2500"

  19. 5) "tom"

  20. 6) "2500"

  21. 127.0.0.1:6379> ZRANGEBYSCORE salary (1000 400000

  22. 1) "jack"

  23. 2) "tom"

  24. 3) "peter"

    ZRANK key member:返回有集合key中member的排名,默认按照score值递增。

    返回值:返回member在key中的排名。

  1. 127.0.0.1:6379> ZRANK salary tom

  2. (integer) 2

  3. 127.0.0.1:6379> ZRANK salary tom_none

  4. (nil)

    ZREM key [member...]:移除集合key中的一个或者多个member。

    返回值:被成功移除的member的数量,被忽略的不计入。

    

  1. 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES

  2. 1) "bing.com"

  3. 2) "8"

  4. 3) "baidu.com"

  5. 4) "9"

  6. 5) "google.com"

  7. 6) "10"

  8. 127.0.0.1:6379> ZREM page_rank google.com

  9. (integer) 1

  10. 127.0.0.1:6379> ZREM page_rank baidu.com bing.com so.com

  11. (integer) 2

  12. 127.0.0.1:6379>

    ZREMRANGEBYRANK key start stop:移除集合key中,指定排名闭区间内的所有集合。

    返回值:被移除的成员变量。

  1. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  2. 1) "jery"

  3. 2) "100"

  4. 3) "jack"

  5. 4) "2500"

  6. 5) "tom"

  7. 6) "2500"

  8. 7) "peter"

  9. 8) "12000"

  10. 127.0.0.1:6379> ZREMRANGEBYRANK salary 0 1

  11. (integer) 2

  12. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  13. 1) "tom"

  14. 2) "2500"

  15. 3) "peter"

  16. 4) "12000"

    ZREMRANGEBYSCORE ken min max:移除集合Key中score介于min max闭区间内的成员。    

    返回值:被移除的成员数量。

  1. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  2. 1) "Jim"

  3. 2) "1000"

  4. 3) "tom"

  5. 4) "2500"

  6. 5) "peter"

  7. 6) "12000"

  8. 127.0.0.1:6379> ZREMRANGEBYSCORE  salary 1500 3500

  9. (integer) 1

  10. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  11. 1) "Jim"

  12. 2) "1000"

  13. 3) "peter"

  14. 4) "12000"


    ZREVRANGE key start stop WITHSCORES:按score递减的顺序返回闭区间内的成员。基本与ZRANGE相同。

    ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回集合中,score介于max和min之间的成员,按score递减排列。ZRANGEBYSCORE命令相似。

    ZREVRANK key member:返回集合Key中,member的排名,排名按递减顺序。

    ZSCORE key member:返回有序集合中,member的score。

    返回值:member的score值。

  1. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  2. 1) "Jim"

  3. 2) "1000"

  4. 3) "peter"

  5. 4) "12000"

  6. 127.0.0.1:6379> ZSCORE salary Jim

  7. "1000"

    ZUNIONSTORE destination numkey key[key ... ] [WEIGHTS weight...] [AGGREGATE SUM|| MIN || MAX]:计算给定的一个或多个集合的并集,并将该并集存储到destination中。

    WEIGHTS 选项可以为每个有序集合分别指定一个乘法因子,指定后,集合每个成员在传递给聚合函数的时候,都会乘以该因子。

    AGGREGATE 选项指定并集的聚合方式。SUM表示score的和,MIN表示将小者作为结果,MAX表示将大者作为结果。

    返回值:保存到结果中的基数。

  1. 127.0.0.1:6379> ZADD pragrammer 2000 peter 3500 jack 5000 tom

  2. (integer) 3

  3. 127.0.0.1:6379> ZRANGE manager 2000 herry 3500 marry 4000 bob

  4. (error) ERR value is not an integer or out of range

  5. 127.0.0.1:6379> ZADD manager 2000 herry 3500 marry 4000 bob

  6. (integer) 3

  7. 127.0.0.1:6379> ZUNIONSTORE salary 2 programmer manager weights 1 3

  8. (integer) 3

  9. 127.0.0.1:6379> ZUNIONSTORE salary 2 pragrammer manager weights 1 3

  10. (integer) 6

  11. 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES

  12. 1) "peter"

  13. 2) "2000"

  14. 3) "jack"

  15. 4) "3500"

  16. 5) "tom"

  17. 6) "5000"

  18. 7) "herry"

  19. 8) "6000"

  20. 9) "marry"

  21. 10) "10500"

  22. 11) "bob"

  23. 12) "12000"

    ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight[weight ... ]] [AGGREGATE SUM|| MIN || MAX]:计算一个或多个有序集合的交集,并将该结果存储到结果集合中。

    返回值:保存到结果集合中的基数。

  1. 127.0.0.1:6379> ZADD mid_test 70 lilei 70 hanmeimei 99.5 tom

  2. (integer) 3

  3. 127.0.0.1:6379> ZADD fin_test 88 lilei 75 hanmeimie 99.5 tom

  4. (integer) 3

  5. 127.0.0.1:6379> ZINTERSTORE sum_point 2 mid_test fin_test

  6. (integer) 2

  7. 127.0.0.1:6379> ZRANGE sum_point 0 -1 WITHSCORES

  8. 1) "lilei"

  9. 2) "158"

  10. 3) "tom"

  11. 4) "199"

    ZLEXCOUNT key min max:对于所有成员分数相同的集合,这个命令返回介于min max之间元素数量。

    返回值:指定范围内元素的数量。

  1. 127.0.0.1:6379> ZADD myzset 0 a 0 b 0 c 0 d 0 e
  2. (integer) 5
  3. 127.0.0.1:6379> ZADD myzset 0 f 0 g
  4. (integer) 2
  5. 127.0.0.1:6379> ZLEXCOUNT myzset - +
  6. (integer) 7
  7. 127.0.0.1:6379> ZLEXCOUNT myzset [b [f
  8. (integer) 5

    ZREMRANGEBYLEX key min max:对于一个所有成员score相同的集合,移除介于min max之间的元素。

    返回值:被移除的元素的数量。

  1. 127.0.0.1:6379> ZREMRANGEBYLEX myzset [a [c
  2. (integer) 3
  3. 127.0.0.1:6379> ZRANGE myzset 0 -1
  4. 1) "d"
  5. 2) "e"
  6. 3) "f"
  7. 4) "g"
  8. 127.0.0.1:6379>




主要参考:http://redisdoc.com/sorted_set/zremrangebylex.html



Redis命令学习-SortedSet(有序集合)

标签:

原文地址:http://blog.csdn.net/mergades/article/details/46610095

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!