目录
概述
Sorted-Sets和Sets类型相似,都不能出现重复的成员。他们之间的差别是Sorted-Sets中每一个成员都有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从下到大的排序(默认)尽管Sorted-Sets中成员必须是唯一的,但分数(score)却可以是重复的。
在Sorted-Sets中,添加、删除、更新是非常快速的。因为Sorted-Sets中的成员位置上是有序的。
操作
增加分数为1的成员;增加分数为2,3的成员
zadd myzset 1 "one"
zadd myzset 2 "two" 3 "three"
通过索引获取元素,0表示第一个成员,-1表示最后一个成员。WITHSOCRES选项表示返回的结果中包含每个成员及分数,否则值返回成员。
获取zset中成员的个数:
zcard myzset
获取成员one在集合中的索引,0表示第一个位置:
zrank myzset one
zrank myzset three
获取符合指定条件的成员数量,分数满足表达式1 <= score <= 2 数量为2
zcount myzset 1 2
删除成员one和two
zrem myzset one two
将成员three的分数加2或减1。返回值为该成员更新后的分数
zincrby myzset 2 three
zincrby myzset -1 three
-inf表示第一个成员,+inf表示最后一个成员,limit后面的参数用于限制返回成员数量,
zadd myzset 1 one 2 two 3 three 4 four
zrangebyscore myzset -inf +inf withscores limit 2 3
按索引从搞到低的方式获取成员
zrevrange myzset 0 -1 WITHSCORES
应用范围:游戏游戏排行榜,执行ZADD命令更新玩家分数,在通过ZRANGE命令获取积分为TOP 10的用户信息。
使用ZRANGE和ZRANK命令快速获取和某个玩家积分相近的其他用户信息。
2.Sorted-Sets类型构件索引数据。