有序集合类型 (Sorted Set) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。有序集合的存储元素值也是不能重复的,但分值是可以重复的。
当我们把学生的成绩存储在有序集合中时,它的存储结构如下图所示:
下面我们先从有序集合的使用开始说起。
1 基础使用
1)添加一个或多个元素
语法:zadd key [NX|XX] [CH] [INCR] score member [score member …] 示例:
127.0.0.1:6379> zadd zset1 10 java
(integer) 1
127.0.0.1:6379> zadd zset1 3 golang 4 sql 1 redis
(integer) 3
可以看出有序集合的添加是 zadd 键值 分值1 元素值1 分值2 元素值2
的形式添加的。
2)查询所有元素列表
语法:zrange key start stop [WITHSCORES] 示例:
127.0.0.1:6379> zrange zset 0 -1
1) "redis"
2) "mysql"
3) "java"
其中 -1 表示最后一个元素,查询结果包含开始和结束元素。
3)查询有序集合的总个数
语法:zcard key