Redis数据操作之有序集合 | Redis

Posted 胡说八道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据操作之有序集合 | Redis相关的知识,希望对你有一定的参考价值。

| 有序集合和集合一样,都可以包含任意数量的,各不相同的元素,不同于集合
的是,有序集合的每个元素都关联着一个浮点数分值,并且有序集合会按照
分值,以从小到大的顺序来排列有序集合中的各个元素。
    虽然有序集合中的每个元素都必须是各不相同的,但元素的分值并没有这一
限制,换句话来说,两个不同元素的分值可以是相同的。
| 基本操作 
-- 添加元素
    zadd key score element [ [score element] [score element] ...]
    # 按照给定的分值和元素,将任意数量的元素添加到有序集合里,命令的返回值
        为成功添加的元素数量。
-- 删除元素
    zrem key element [element ...]
    # 从有序集合中删除指定的元素,以及这些元素关联的分值,命令返回被成功
        删除的元素数量。
-- 返回元素的分值
    zscore key element
    返回有序集合中,指定元素的分值
-- 增加或减少元素的分值
    zincrby key increment element
    # 为有序集合指定的元素的分值加上增量increment,命令返回执行操作之后,
        元素的分值。
    # 没有响应的zdecrby命令,但可以通过将increment设置为负数来减少分值
-- 返回元素数量
    zcard key
    # 返回有序集合包含的元素数量
-- 返回元素的排名
    zrank key element
    # 返回指定元素在有序集合中的排名,其中排名按照元素ed分值从小到大计算。
    # 排名从0开始
-- 返回元素的逆序排名
    zrevrank key member
    # 返回成员在有序集合中的逆序排名,其中排名按照元素的分值从大到小计算。
    # 排名从0开始
| 分值范围操作 
-- 获取指定索引范围内的升序元素
    zrange key start stop [withscores]
    # 返回有序集合在按照分值从小到大排列元素(升序排列)的情况下,
    # 索引start至索引stop范围之内所有的元素
    # 两个索引都可以是正数或者负数,当给定withscores选项时,命令会将元素
        和分值一并返回
-- 获取指定索引范围内的降序元素
    zrevrange key start stop [withscores]
    # 返回有序集合在按照分值从大到小排列元素(降序排列)的情况下,索引start至
    stop的所有元素。
    # 两个索引都可以是正数或者负数,当给定withscores选项时,命令会把元素和
        分值一并返回。
-- 获取指定分值范围内的升序元素
    zrangebyscore key min max [withscores] [limit off set count]
    # 返回有序集合在按照分值升序排列元素的情况下,分值在min和man范围之内的
        所有元素。
    # 给定withscores选项时,元素和分值会一并返回。给定limit选项时,可以通过
        offset参数指定返回的结果集要跳过多少个元素,而count参数则用于指定返回
        的元素数量。
-- 获取指定分值范围内的降序元素
    zrevrangebyscore key min max [withscores] [limit offset count]
    # 返回有序集合在按照分值降序排列元素的情况下,分值在min和man范围之内
        的所有元素
    # 给定withscores选项时,元素和分值会一并返回。给定limit选项时,可以通过
        offset参数指定返回的结果集要跳过多少个元素,而count参数则用于指定返回
        的元素数量。
-- 计算给定分值范围内的元素数量 
    zcount key min max
    # 返回有序集合在升序排列元素的情况下,分值在min和man范围内的元素数量。
-- 移除指定排名范围内的升序排列元素
    zremrangebyrank key start stop
    # 移除有序集合中,元素按升序进行排列的情况下,指定排名范围的所有元素。
    # 排名范围可以使用正数和负数
-- 移除指定分值范围内的升序排列元素
    zremrangebyscore key min max
    # 移除有序集合中,分值范围介于min和max之内的所有元素
    (音乐排行版rank_list.py),(翻页程序的API的实现 paging.py)
| 集合运算 
-- 计算并集和交集
    zunionstore destkey numkeys key [key ...]   # 计算并集
    zinterstore destkey numkeys key [key ...]     # 计算交集
    计算结果会被储存到destkey里面,命令返回结果集的基数;
    numkeys参数指定要进行计算的有序集合个数,key [key ...] 指定进行计算
    的各个有序集合。
    (实现周榜,月榜,年榜)

 

以上是关于Redis数据操作之有序集合 | Redis的主要内容,如果未能解决你的问题,请参考以下文章

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

大数据之Redis:Redis数据类型之Zset及相关的命令行操作

简介redis之集合类型数据

redis 入门之有序集合

Redis源码剖析 - Redis数据类型之有序集合zset