ZADD ZADD key- name score member [score member ...]—— 将 带有 给定 分值 的 成员 添加 到有 序 集合 里面 ZREM ZREM key- name member [member ...]—— 从 有序 集合 里面 移 除 给定 的 成员, 并 返回 被 移 除 成员 的 数量 ZCARD ZCARD key- name—— 返回 有序 集合 包含 的 成员 数量 ZINCRBY ZINCRBY key- name increment member—— 将 member 成员 的 分值 加上 increment ZCOUNT ZCOUNT key- name min max—— 返回 分值 介于 min 和 max 之间 的 成员 数量 ZRANK ZRANK key- name member—— 返回 成员 member 在 有序 集合 中的 排名 ZSCORE ZSCORE key- name member—— 返回 成员 member 的 分值 ZRANGE ZRANGE key- name start stop [WITHSCORES]—— 返回 有序 集合 中 排名 介于 start 和 stop 之间 的 成员, 如果 给定 了 可选 的 WITHSCORES 选项, 那么 命令 会 将 成员 的 分值 也 一并 返回 ZREVRANK ZREVRANK key- name member—— 返回 有序 集合 里 成员 member 的 排名, 成员 按照 分值 从 大 到 小 排列 ZREVRANGE ZREVRANGE key- name start stop [WITHSCORES]—— 返回 有序 集合 给定 排名 范围内 的 成员, 成员 按照 分值 从 大 到 小 排列 ZRANGEBYSCORE ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]—— 返回 有序 集合 中, 分值 介于 min 和 max 之间 的 所有 成员 ZREVRANGEBYSCORE ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]—— 获取 有序 集合 中 分值 介于 min 和 max 之间 的 所有 成员, 并按 照 分值 从 大 到 小的 顺序 来 返回 它们 ZREMRANGEBYRANK ZREMRANGEBYRANK key- name start stop—— 移 除 有序 集合 中 排名 介于 start 和 stop 之间 的 所有 成员 ZREMRANGEBYSCORE ZREMRANGEBYSCORE key- name min max—— 移 除 有序 集合 中 分值 介于 min 和 max 之间 的 所有 成员 ZINTERSTORE ZINTERSTORE dest- key key- count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM| MIN| MAX]—— 对 给定 的 有序 集合 执行 类似于 集合 的 交集 运算 ZUNIONSTORE ZUNIONSTORE dest- key key- count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM| 有序集合是在Set集合的基础上,保留了Set集合中不能存在重复元素的特性,但是不同的是,SortSet集合中元素是可以排序的,SortSet排序和List排序都可以使用索引下标作为排序依据,所以说SortSet实现了数据有序且键值对唯一的集合,SortSet的数据结构有两种:zipList和skipList + HashTable,zipList都不用多少了,是用于数据量较少的情况,默认排序为元素从小到大。而采用skipList + HashTable的数据结构,skipList会在保证集合有序的情况下优化范围查找的时间复杂性,而HashTable刚才已经提到过它可以优化push和pop元素时的时间复杂性。skipList基于有序链表,可以创建多层索引,实现以空间复杂度来换取时间复杂度的做法,最终实现时间复杂度为O(logN)的元素查询过程,当需要push或者pop元素时,则使用HashTable实现时间复杂度仅为O(1). **SortSet数据类型适用场景** * 积分排行榜:根据积分排序从小到大 * 获取某个范围的数据:考试80-100分的数据