概述
内容简介
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | 127.0.0.1:6379> zadd car 1 stn 2 xtl 4 bm 3 bc #添加一个或者多个到有序集合中 (integer) 4 127.0.0.1:6379> ZRANGE car 0 -1 withscores #获取集合元素及分数 1) "stn" 2) "1" 3) "xtl" 4) "2" 5) "bc" 6) "3" 7) "bm" 8) "4" 127.0.0.1:6379> ZCARD car #统计元素个数 (integer) 4 127.0.0.1:6379> ZCOUNT car 3 4 #获取分数区间的元素个数 (integer) 2 127.0.0.1:6379> ZINCRBY car 4 bm #给元素增加分数 "8" 127.0.0.1:6379> ZRANGE car 0 -1 withscores #获取集合元素及分数 1) "stn" 2) "1" 3) "xtl" 4) "2" 5) "bc" 6) "3" 7) "bm" 8) "8" 127.0.0.1:6379> zadd car2 10 lsls (integer) 1 127.0.0.1:6379> ZINTERSTORE car3 2 car car2 #把两个集合的交集存到另一个集合中 (integer) 0 127.0.0.1:6379> zadd car2 10 lsls 11 bm (integer) 1 127.0.0.1:6379> ZINTERSTORE car3 2 car car2 (integer) 1 127.0.0.1:6379> ZRANGE car3 0 0 1) "bm" 127.0.0.1:6379> ZRANGE car3 0 0 withscores 1) "bm" 2) "19" 127.0.0.1:6379> ZRANGEBYSCORE car (3 8 #获取分数区间的元素,(3代表大于3,8代表小于等于8 1) "bm" 127.0.0.1:6379> ZRANGEBYSCORE car (3 8 withscores 1) "bm" 2) "8" 127.0.0.1:6379> ZRANGEBYSCORE car (1 8 withscores 1) "xtl" 2) "2" 3) "bc" 4) "3" 5) "bm" 6) "8" 127.0.0.1:6379> ZRANGEBYSCORE car -inf +inf withscores #获取所有元素,并按照分数排序 1) "stn" 2) "1" 3) "xtl" 4) "2" 5) "bc" 6) "3" 7) "bm" 8) "8" 127.0.0.1:6379> ZRANGEBYSCORE car -inf +inf 1) "stn" 2) "xtl" 3) "bc" 4) "bm" 127.0.0.1:6379> zrange car 0 0 1) "stn" 127.0.0.1:6379> zrange car 0 -1 1) "stn" 2) "xtl" 3) "bc" 4) "bm" 127.0.0.1:6379> zrank car stn #获取指定元素的排名(按照分数排名) (integer) 0 127.0.0.1:6379> zrank car xtl (integer) 1 127.0.0.1:6379> zrem car stn xtl #移除指定元素 (integer) 2 127.0.0.1:6379> ZREMRANGEBYRANK car 0 7 #根据排名移除区间内元素 (integer) 2 127.0.0.1:6379> ZRANGE car 0 -1 (empty list or set) 127.0.0.1:6379> zadd car 1 stn 2 xtl 3 bm (integer) 3 127.0.0.1:6379> ZREMRANGEBYSCORE car 1 2 #移除指定分数区间内元素 (integer) 2 127.0.0.1:6379> zadd car 6 bsj 7 fll 9 lsls (integer) 3 127.0.0.1:6379> ZREVRANGE car 0 3 #获取指定索引区间内的以分数排名的元素 1) "lsls" 2) "fll" 3) "bsj" 4) "bm" 127.0.0.1:6379> ZREVRANGE car 0 2 1) "lsls" 2) "fll" 3) "bsj" 127.0.0.1:6379> ZREVRANGEBYSCORE car 9 6 #获取指定分数区间内以分数排名的元素 1) "lsls" 2) "fll" 3) "bsj" 127.0.0.1:6379> ZREVRANK car fll #获取指定元素排名 (integer) 1 127.0.0.1:6379> ZREVRANK car lsls (integer) 0 127.0.0.1:6379> ZREVRANK car bm (integer) 3 127.0.0.1:6379> zscore car bm #获取元素分数 "3" 127.0.0.1:6379> |
最后
以上就是高兴小蚂蚁为你收集整理的有序集合类型详解的全部内容,希望文章能够帮你解决有序集合类型详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复