目录
一、简介
redis中sorted_set是增加了score(分数)功能的set,同样是无序不重复的字符串,可以根据score实现排序、排名等功能,也可以完成set的去重、集合操作。
二、命令大全
-
ZADD
,向set中添加一个或多个成员,并指定分数,, NX | XX 分别表示集合不存在时生效、存在时生效,,CH和INCR选项用于修改集合成员score,CH表示将score修改为指定score,INCR表示原有score改为加指定score。
, 枇杷8块,苹果8块,提子12,山竹25。将枇杷改为6块
,通过CH直接修改分数 ,,枇杷价格加2,
-
ZCARD
,获取集合中的成员数
-
ZCOUNT
,获取分数在 min 和 max 之间的成员数
- ZINCRBY
,增加成员score,增量为increment,
-
ZRANGE
,返回一定范围的集合成员,只返回成员字符串,按照score从低到高顺序。 WITHSCORES返回字符串以及score
- ZRANGEBYLEX
,按照成员的字典序排序。min、max分别代表最小、最大 ,可用 ‘(’或''‘[’分别表示开区间、闭区间,- 表示无限小 +表示无限大,LIMIT 与mysql的分页语义一样。
- ZRANGEBYSCORE
,按照score排序,获取score在min和max之间的成员。 WITHSCORES返回成员及其score。
-
ZRANK
,, 获取成员在集合中的位置,升序排序
-
ZREM
,,删除集合成员
- ZREMRANGEBYLEX | ZREMRANGEBYRANK | ZREMRANGEBYSCORE,, 按照字典序、位置、score区间删除
- ZREVRANGE | ZREVRANGEBYLEX | ZREVRANGEBYSCORE | ZREVRANK,,与ZRANGE | ZRANGEBYLEX| ZRANGEBYSCORE | ZRANK 刚好相反, 降序返回
- ZSCORE
, 获取集合成员score。
- ZINTERSTORE
,获取集合交集然后存储在destination
- ZUNIONSTORE
,集合并集并存储在destination,numbeys 表示合并集合的数量。
,两个集合中都有shanzhu,score分别为 25、5,,
,合并后shanzhu的score编程30,说明默认情况下合并后相同成员的score会相加,,AGGRAGATE 可以指定合并规则 ,有SUM | MIN | MAX选项,分别是求和、取最小 、取最大。
- ZLEXCOUNT
, 获取字典序在min和max之间的成员数量。
三、应用
- XXX排行榜,将某个维度设为score,获取前10名使用zrevrange,获取用户排名使用zrank
- 最新新闻 将发布时间戳作为score, 最新的score最大。