文章目录
- 一、SortedSet类型
- 1.1 ZADD & ZREM & ZCRAD
- 1.2 ZSCORE & ZRANK
- 1.3 ZCOUNT & ZRANGE & ZRANGEBYSCORE
- 1.4 ZDIFF & ZINTER & ZUNIOn
- 1.5 案例
一、SortedSet类型
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。SortedSet具备下列特性:
- 可排序
- 元素不重复
- 查询速度快
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。
1.1 ZADD & ZREM & ZCRAD
- ZADD key score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值
- ZREM key member:删除sorted set中的一个指定元素
- ZCARD key:获取sorted set中的元素个数
返回顶部
1.2 ZSCORE & ZRANK
-
ZSCORE key member:获取sorted set中的指定元素的score值
-
ZRANK key member:获取sorted set中的指定元素的排名
返回顶部
1.3 ZCOUNT & ZRANGE & ZRANGEBYSCORE
-
ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
-
ZRANGE key min max:按照score排序后,获取指定排名范围内的元素
-
ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
返回顶部
1.4 ZDIFF & ZINTER & ZUNIOn
- ZDIFF、ZINTER、ZUNIOn:求差集、交集、并集
1.5 案例
将班级的下列学生得分存入Redis的SortedSet中: Jack 85,Lucy 89,Tom 82, Tom 95,Jerry 78,Amy 92,Miles 76·并实现下列功能:
- 删除Tom同学
-
获取Amy同学的分数
-
获取Jerry同学的排名
-
查询80分以下有几个学生
-
给Amy同学加2分
- 查出成绩前3名的同学
- 查出成绩80分以下的所有同学
返回顶部



