Redis的有序集合操作命令


有序集合(zset)就是可以排序的set,通過每個元素關聯的score值來為元素進行從小到大的排序,zset中元素不能重復,但是score卻可以重復

設定/修改命令

zadd key score member [[score member] [score member] ...]

    將一個或多個member元素及其score值加入到key當中
    score值可以是整數值或雙精度浮點數
    如果某個member已經是有序集合的成員,那么更新這個member的score值
    如果key不存在,創建一個空的有序集並執行zadd操作
    返回被成功添加的新成員的數量,不包括那些被更新的、已經存在的成員

zincrby key increment member

    為key的成員member的score值加上增量increment(可以為負數)
    key不存在時創建一個空的有序集並執行zincrby操作
    member成員不存在時,創建該成員並設置其score值為0並執行zincrby操作
    返回member成員的新score值(字符串形式)

移除命令

zrem key member [member ...]:移除key中一個或多個成員,不存在的成員將被忽略。返回被成功移除的成員數量(不包括被忽略的成員)

zremrangebyrank key start stop:移除key中指定下標區間內(包含start和stop)的所有成員。返回移除成員的數量

zremrangebyscore key min max:

    移除key中score值在min和max之間(包括mi和max)的成員
    可以給參數min和max前增加"("括號來使結果不包含
    返回移除成員的數量

獲取命令

zrange key start stop [withscores]

    返回key中指定下標(可以為負數)區間內的成員並按score值遞增(從小到大)來排序的列表
    具有相同score值的成員按字典序(lexicographical order)來排列
    start大於最大下標或者start>stop,返回空列表
    stop大於最大下標將stop當作最大下標來處理
    withscores選項讓成員和它的score值一並返回,返回列表以value1,score1, ..., valueN,scoreN的格式表示

zrevrange key start stop [withscores]:返回key中逆序排序(按score值從大到小)后指定下標(可以為負數)區間內的成員列表

zrangebyscore key min max [withscores] [limit offset count]

    返回key中score值介於min和max之間(包括min和max)的成員
    min和max可以是-inf(無限大)和+inf(無限小),這樣可以在不知道最低和最高score的情況下使用zrangebyscore這類命令
    可選的limit參數指定返回結果的數量及區間
    withscores選項讓成員和它的score值一並返回
    默認情況下,包括score值等於min和max的成員,可以給參數min和max前增加"("括號來使結果不包含,如:
    zrangebyscore zset (1 5:返回所有1<score<=5的成員
    zrangebyscore zset (5 (10:返回所有5<score<10的成員
    返回指定區間內的有序集成員的列表

zrevrangebyscore key min max [withscores] [limit offset count]:返回key中score值介於min和max之間(包括min和max)的成員並把這些成員逆序排序(按score值從大到小)

zscore key member:返回key成員member的score值(字符串形式),如果member元素不是key的成員或key不存在返回nil

交集並集

zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]

    計算給定的一個或多個有序集的和集(並集)並將該並集(結果集)儲存到destination
    numkeys為給定key的數量
    weights選項為每個對應的key分別指定一個乘法因子,對應的key所有成員的score值在傳遞給聚合函數(aggregate)之前都要先乘以該因子,默認為1
    aggregat選項指定和集(並集)的結果集中score值的聚合方式
        默認為sum,將所有集合中某個相同成員的score值之和作為結果集中該成員的score值;
        min將所有集合中某個相同成員中最小的score值作為結果集中該成員的score值;
        max將所有集合中某個相同成員最大的score值作為結果集中該成員的score值
    返回保存到 destination 的結果集的基數。

zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]

    計算給定的一個或多個有序集的交集並將該交集(結果集)儲存到destination
    參數的用法和zunionstore相同

其他命令

zcard key:返回key的基數,key不存在時返回0

zcount key min max:返回key中score值在min和max之間(包括min和max)的成員的數量

zrank key member:返回key中成員member的排名(從0開始),如果member不是key的成員返回nil

zrevrank key member:返回key中成員member逆序排序(按score值從大到小)后的排名(從0開始)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM