目录
一、简介
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最大。