zoukankan      html  css  js  c++  java
  • redis学习 --Sorted Set

    一、概述:

        Sorted Set(有序集合)和Set类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted Set中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted Set中的成员必须是唯一的,但是分数(score)却是可以重复的。
        在Sorted Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员数量的对数。由于Sorted Set中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部的成员也仍然是非常高效的。事实上,Redis所具有的这一特征在很多其它类型的数据库中是很难实现的,换句话说,在该点上要想达到和Redis同样的高效,在其它数据库中进行建模是非常困难的。

    二:

    1:增加元素

    ZADD key score member

    2:获得集合中的个数

    ZCARD key

    3:获得指定分数范围内的元素个数

    ZCOUNT key min max

    4:获得元素的分数

    ZSCORE key member

    5:增加某个元素的分数

    ZINCRBY key increment member

    6:获得排名在某个范围的元素列表

    ZRANGE key start stop [WITHSCORES]

    7:同上,只不过元素是从大到小排序

    ZREVRANGE key start stop [WITHSCORES] 

    8:获得制定分数范围的元素

    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

    该命令将返回分数在min和max之间的所有成员,即满足表达式min <= score <= max的成员,其中返回的成员是按照其分数从低到高的顺序返回,如果成员具有相同的分数,则按成员的字典顺序返回。

    9:获得指定分数范围的元素(元素分数从大到小排序)

    ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 

    10:获得元素的排名

    ZRANK key member

    11:获得元素的排名,从大到小

    ZREVRANK key member

    12:删除一个或多个元素

    ZREM key member [member ...]

    13、按照排名范围删除元素

    命令原型:ZREMRANGEBYRANK key start stop 

    时间复杂度:O(log(N)+M)

    命令描述:时间复杂度中的N表示Sorted Set中成员的数量,M则表示被删除的成员数量。删除索引位置位于start和stop之间的成员,start和stop都是0-based,即0表示分数最低的成员,-1表示最后一个成员,即分数最高的成员。 

    返回值:被删除的成员数量

    14、按照分数范围删除元素

    命令原型:ZREMRANGEBYSCORE key start stop 

    时间复杂度:O(log(N)+M)

    命令描述:时间复杂度中的N表示Sorted Set中成员的数量,M则表示被删除的成员数量。删除分数在min和max之间的所有成员,即满足表达式min <= score <= max的所有成员。对于min和max参数,可以采用开区间的方式表示,具体规则参照ZCOUNT。 

    返回值:被删除的成员数量。

  • 相关阅读:
    校赛writeup
    memory-300——Jarvis OJ
    校赛_warmup_pwn
    sctf
    iscc-pwn1
    level3-64——Jarvis OJ
    JarvisOJ——level2
    JarvisOJ——guestbook
    Javris oj——level0
    linux 服务器 tomcat环境部署出错 重启
  • 原文地址:https://www.cnblogs.com/bulrush/p/9324656.html
Copyright © 2011-2022 走看看