一.sorted set类型介绍
有序集合,和set集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
二.向有序集合添加一个或多个成员,以及更新已存在成员的分数
语法:ZADD key_name score1 value1(多个使用空格分隔)
Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置。
分数值可以是整数值或双精度浮点数。如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。
注:在 Redis 2.4 版本以前, ZADD 每次只能添加一个元素。ZADD myzset 1 xiaoxiao1 1 xiaoxiao2 3 xiaoxiao3
三.通过索引区间返回有序集合成指定区间内的成员
语法:ZRANGE key_name start stop [WITHSCORES]
Zrange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列。
参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
ZRANGE myzset 0 2
四.获取有序集合的成员数
语法:ZCARD key_nameZCARD myzset
五.移除有序集合中的一个或多个成员
语法: ZREM key_name member(多个用空格分隔)
Zrem 命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。当 key 存在但不是有序集类型时,返回一个错误。
注: 在 Redis 2.4 版本以前, ZREM 每次只能删除一个元素。
ZREM myzset xiaoxiao1 xiaoxiao2
再来看成员数