<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來的快樂

    我喜歡java新東西

    Redis命令——Sorted Set相關

    本文主要介紹Redis中與有序集合(Sorted
    Set)相關的命令,內容主要來源于Redis的官方網站,如果需要請參考:http://redis.io/commands#sorted_set。



    1.ZADD
    語法:ZADD key scroe
    member
    說明:該操作的時間復雜度為O(log(N)),此處N為有序集合中的元素個數。向key對應的有序集合中添加具有指定scroe的元素。如果元素在有序集合中已經存在,那么該元素具有的score將會被更新,并且元素將會被重新插到正確的位值以便確保正確的順序。如果指定的key不存在,那么將會創建一個具有member這一唯一元素的一個新的有序集合。如果key存在,但是其對應的值不是有序集合,那么將會發生錯誤。命令中所指定的scroe值應該是能夠轉換為數字值的字符串,并且接受雙精度浮點類型。
    返回值:如果元素被添加,返回值為1;如果元素已經是有序集合中的一員并且scroe被更新,那么返回值為0。
    該命令自1.1版本后可用。

    2.ZCARD
    語法:ZCARD
    key
    說明:該操作的時間復雜度為O(1)。返回存儲在key對應的有序集合中的元素的個數。
    返回值:返回有序集合中元素的個數,如果key不存在,那么返回值為0。
    該命令自1.1版本后可用。

    3.ZCOUNT
    語法:ZCOUNT
    key min
    max
    說明:該操作的時間復雜度為O(log(N)+M),此處N為元素的個數,而M為min和max間的元素個數。返回key對應的有序集合中介于min和max間的元素的個數。
    返回值:返回指定scroe范圍內的元素的個數。
    該命令自1.3.3版本后可用。

    4.ZINCRBY
    語法:ZINCRBY
    key increment
    member
    說明:該操作的時間復雜度為O(long(N)),此處N為有序集合中元素的個數。將key對應的有序集合中member元素的scroe加上increment。如果指定的member不存在,那么將會添加該元素,并且其score的初始值為increment。如果key不存在,那么將會創建一個新的有序列表,其中包含member這一唯一的元素。如果key對應的值不是有序列表,那么將會發生錯誤。指定的score的值應該是能夠轉換為數字值的字符串,并且接收雙精度浮點數。同時,你也可用提供一個負值,這樣將減少score的值。
    返回值:返回member的新的score的值,表示為字符串。
    該命令自1.1版本后可用。

    5.ZINTERSTORE
    語法:ZINTERSTORE
    destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
    SUM|MIN|MAX]
    說明:在最壞的情況下,該操作的時間復雜度為O(N*K)+O(M*log(M)),此處N為最小的有序集合,K為有序集合的個數,而M為結果有序集合中元素的個數。計算numkeys個由keys指定的有序集合的交集,并且將結果存儲在destination中。在該命令中,在你傳遞輸入keys之前,必須提供輸入keys的個數和其它可選的參數。
    在默認情況下,一個元素的結果score是具有該元素的所有有序集合的score的和。關于WEIGHTS和AGGREGATE選項,可以參看ZUNIONSTORE命令。如果目標已經存在,那么它將會被重寫。
    返回值:返回destination有序集合中元素的個數。
    該命令自1.3.10版本后可用。

    6.ZRANGE
    語法:ZRANGE
    key start stop
    [WITHSCORES]
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,而M為將要返回的元素的個數。返回存儲在key上的指定區域內的元素。元素將會按照從低到高的順序進行排序。而對于具有相同score的元素,將會按照字典順序進行排序。
    當你需要按照從高到低的順序進行排序元素時,請參考ZREVRANGE命令。在命令中,start和stop索引都是以0開始的,0表示第一個元素,1表示第二個元素,以此類推。它們同樣可以是負值,以便從有序集合的尾部指定偏移值,此時,-1表示有序集合中的最后一個元素,-2表示倒數第二個元素,以此類推。超出邊界的索引值將會產生錯誤。如果start超出有序集合的最大的索引值,或者start
    >
    end,那么將會返回一個空集。如果stop超出有序集合的最大索引,那么會將其當作最后一個元素對待。
    同時,可以向該命令傳遞WITHSCORES選項以便在返回元素時帶上其scores信息。此時返回值列表將會是value1,
    score1, ... , valueN, scoreN,而非value1, ... ,
    valueN。
    返回值:返回指定區域內的元素列表。
    該命令自1.1版本后可用。

    7.ZRANGEBYSCORE
    語法:ZRANGEBYSCORE
    key min max [WITHSCORES] [limit offset
    count]
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,而M為將要返回的元素的個數。如果M為常量,可以認為時間復雜度為O(log(N))。返回key對應的有序集合中score介于min和max之間的所有元素(包哈score等于min或者max的元素)。元素按照score從低到高的順序排列。如果元素具有相同的score,那么會按照字典順序排列。
    可選的選項LIMIT可以用來獲取一定范圍內的匹配元素。如果偏移值較大,有序集合需要在獲得將要返回的元素之前進行遍歷,因此會增加O(N)的時間復雜度。可選的選項WITHSCORES可以使得在返回元素的同時返回元素的score,該選項自從Redis
    2.0版本后可用。
    排除區間端點和無窮值:
    min和max可以是-inf和+inf,因此你能夠在不知道score的最大值或最小值的情況下獲取一定范圍內的所有元素。在默認情況下,由min和max指定的區間是閉區間。同時可以通過在score的前面添加“(”前綴來指定一個開區間(不包括區間端點)。例如:
    ZRANGEBYSCORE
    zset (1 5
    將會返回1 < score <=
    5的所有元素。
    返回值:指定score區間內的所有元素列表。
    該命令自1.050版本后可用。

    8.ZRANK
    語法:ZRANK
    key
    member
    說明:該操作的時間復雜度為O(log(N))。返回key對應的有序集合中member元素的索引值,元素按照score從低到高進行排列。rank值(或index)是從0開始的,這意味著具有最低score值的元素的rank值為0。使用ZREVRANK可以獲得從高到低排列的元素的rank(或index)。
    返回值:如果有序集合中存在member,將會返回member的rank值,如果member不存在,或者指定的key不存在,那么返回值為nil。
    該命令自1.3.4版本后可用。

    9.ZREM
    語法:ZREM
    key
    member
    說明:該操作的時間復雜度為O(log(N)),此處N為有序集合中元素的個數。從key對應的有序集合中移除指定的元素。如果member不是有序集合中的元素,那么將不執行任何操作。如果key存在但是其對應的值不是有序集合,那么將會發生錯誤。
    返回值:如果member被移除,那么返回值為1;如果member不是有序集合中的元素,那么返回值為0。
    該命令自1.1版本后可用。

    10.ZREMRANGEBYRANK
    語法:ZREMRANGEBYRANK
    key start
    stop
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,而M為將要移除的元素的個數。移除key對應的有序集合中rank值介于start和stop之間的所有元素。start和stop均是從0開始的,并且兩者均可以是負值。當索引值為負值時,表明偏移值從有序集合中score值最高的元素開始。例如:-1表示具有最高score的元素,而-2表示具有次高score的元素,以此類推。
    返回值:返回將要移除的元素的個數。
    該命令自1.3.4版本后可用。



    11.ZREMRANGEBYSCORE
    語法:ZREMRANGEBYSCORE key min
    max
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,而M為將要移除的元素的個數。移除key對應的有序集合中scroe位于min和max(包含端點)之間的所喲元素。從2.1.6版本后開始,區間端點min和max可以被排除在外,這和ZRANGEBYSCORE的語法一樣。
    返回值:返回將要移除的元素個數。
    該命令自1.1版本后可用。

    12.ZREVRANGE
    語法:ZREVRANGE
    key start stop
    [WITHSCORES]
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,而M為將要返回的元素的個數。返回key對應的有序集合中指定區間的所有元素。這些元素按照score從高到低的順序進行排列。對于具有相同的score的元素而言,將會按照遞減的字典順序進行排列。該命令與ZRANGE類似,只是該命令中元素的排列順序與前者不同。
    返回值:指定區間內的元素的列表。
    該命令自1.1版本后可用。

    13.ZREVRANGEBYSCROE
    語法:ZREVRANGEBYSCORE
    key max min [WITHSCORES] [LIMIT offset
    count]
    說明:該操作的時間復雜度為O(log(N)+M),此處N為有序集合中元素的個數,M為將要返回的元素的個數。如果M是個常量,那么可以認為時間復雜度為O(log(N))。
    返回key對應的有序集合中score介于max和min(包含score等于max或者min的元素)之間的所有元素。該命令按照score從高到低的順序對元素進行排序。如果兩個元素具有相同的score,那么它們將會按照字典順序進行排列。除去排列順序的不同,ZREVRANGEBYSCORE命令與ZRANGEBYSCORE命令相同。
    返回值:指定score區間內的元素的列表。
    該命令自2.1.6版本后可用。

    14.ZREVRANK
    語法:ZREVRANK
    key
    member
    說明:該操作的時間復雜度為O(log(N))。返回key對應的有序集合中member的索引值,元素按照從高到低的順序進行排列。rank值(或稱為索引值)是從0開始計數的,因此具有最高score值的元素的rank值為0。你可以使用ZRANK命令來獲取按照scroe值從低到高順序排列的元素的rank值。
    返回值:如果member在有序集合中存在,那么返回值為member的rank值;如果member不存在或者key不存在,那么返回值為nil。
    該命令自1.3.4版本后可用。

    15.ZSCORE
    語法:ZSCORE
    key
    member
    說明:該命令的時間復雜度為O(1)。返回key對應的有序集合中member的score值。如果member在有序集合中不存在,那么將會返回nil。
    返回值:返回member的score值(一個雙精度浮點數字),表示為字符串。
    該命令自1.1版本后可用。

    16.ZUNIONSTORE
    語法:ZUNIONSTORE
    destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
    SUM|MIN|MAX]
    說明:該操作的時間復雜度為O(N)+O(Mlog(M)),此處N為輸入有序集合的總大小,M為結果集合中元素的個數。對keys對應的numkeys個有序集合計算合集,并將結果存儲在destination中。在傳遞輸入keys之前必須提供輸入keys的個數和其它可選參數。在默認情況下,元素的結果score是包含該元素的所有有序集合中score的和。如果使用WEIGHTS選項,你可以對每一個有序集合指定一個操作因子。這意味著每一個有序集合中的每個元素的score在傳遞給聚合函數之前均會被乘以該因子。當WEIGHTS沒有指定時,操作因子默認為1。
    使用AGGREGATE選項,你可以指定交集中的結果如何被聚合。該選項默認值為SUM,在這種情況下,一個元素的所有score值均會被相加。當選項被設置為MIN或MAX時,結果集合中將會包含一個元素的最大或者最小的score值。如果destination已經存在,那么它將會被重寫。
    返回值:目標有序集合中的元素的個數。
    該命令自1.3.10版本后可用。

    posted on 2012-06-19 12:48 強強 閱讀(754) 評論(0)  編輯  收藏 所屬分類: Redis

    主站蜘蛛池模板: 亚洲综合国产一区二区三区| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产一级做a爱免费视频| 亚洲色成人网站WWW永久四虎| 成人黄色免费网址| 亚洲精品第一国产综合野| 中文字幕乱码免费视频| 亚洲国产精品综合久久网各| 无码国产精品一区二区免费式影视| 亚洲精品456在线播放| 妻子5免费完整高清电视| 亚洲一久久久久久久久| 国产精品嫩草影院免费| 四虎精品成人免费视频| 亚洲欧洲日本精品| 一级女人18毛片免费| 亚洲午夜无码毛片av久久京东热| 久久精品网站免费观看| 亚洲欧美日韩综合久久久| 男人的天堂亚洲一区二区三区 | 亚洲成a∨人片在无码2023| 免费一级e一片在线播放| 亚洲天堂免费在线视频| 久久久久亚洲AV无码专区首| h视频在线观看免费完整版| 亚洲AV无码无限在线观看不卡| 日本高清色本免费现在观看| 一级免费黄色大片| 成人奭片免费观看| 国产AV无码专区亚洲AV琪琪| 亚洲国产精华液网站w| 亚洲性线免费观看视频成熟| 美女视频黄.免费网址| 国产亚洲一区二区三区在线| 91精品免费在线观看| 免费手机在线看片| 亚洲黄色一级毛片| 一本色道久久88亚洲综合 | 亚洲人成网站影音先锋播放| 免费无码黄十八禁网站在线观看| 黄色a三级免费看|