5、有序集合类型
    有序集合为集合的每个元素都关联了一个分数,集合中的元素都是不同的,但是分数可以相同。

    有序集合和列表的同异:
    相同点
    二者都是有序的
    二者都可以获得某一范围的元素
    不同点
    列表是通过链表实现的获取两端的数据速度快,元素多时,获取中间的数据慢。
    有序集合是使用散列表、跳跃表实现的,即使读取中间的数据也很快。
    列表不能简单得调整某个元素的位置,有序集合可以修改分数实现。
    有序集合比列表类型更耗费内存

    命令:
    增加元素
    ZADD key score member [score member…] 向有序集合加入元素和分数,如果元素已存在则使用新的分数覆盖。返回值是新加入的元素个数。分数支持整数和双精度浮点数。
    获得元素的分数
    ZSCORE key
    获得排名在某个范围的元素列表
    ZRANGE key start stop [WITHSCORES] 按照元素分数从小到大顺序返回索引从start到stop之间的元素(包含两端),WITHSCORES加上后,同时返回分数。
    ZREVRANGE key start stop [WITHSCORES] 分数从大到小
    获得指定分数范围的元素
    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offet count] 按照元素分数从小到大返回分数在min和max之间(包含两端)的元素,如果希望不包含,在分数前加“(”或“)”;ZREVRANGEBYSCORE则从大到小,min和max顺序也要相反
    增加某个元素的分数
    ZINCRBY key increment member 增加一个元素的分数,返回是增加后的分数。如果元素不存在,会自动创建,并赋值0再执行增加操作。支持负数。
    获取集合中的元素数量
    ZCARD key
    获得指定范围的元素个数
    ZCOUNT key min max
    删除一个或多个元素
    ZREM key member [member..] 返回值是成功删除的元素数量
    按照排名范围删除元素
    ZREMRANGEBYRANK key start stop 按照元素分数从小到大的顺序,删除在指定范围内的所有元素,并返回删除的元素数量。
    获得元素的排名
    ZRANK key member
    ZREVRANK key member
    计算有序集合的交集
    ZINTERSTORE 命令