我是靠谱客的博主 高兴小蚂蚁,这篇文章主要介绍有序集合类型详解,现在分享给大家,希望可以做个参考。

内容简介

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
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
复制代码
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>

最后

以上就是高兴小蚂蚁最近收集整理的关于有序集合类型详解的全部内容,更多相关有序集合类型详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部