Redis有序集合如何使用

這篇文章主要介紹“redis有序集合如何使用”,在日常操作中,相信很多人在Redis有序集合如何使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis有序集合如何使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有衡水免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Redis有序集合如何使用

Redis數(shù)據(jù)結(jié)構(gòu):有序集合

有序的集合。每個元素都由一個成員和一個與成員相關(guān)聯(lián)的分值組成,成員以字符串存儲,分值以64位雙精度浮點數(shù)存儲。成員不可重復(fù),以分值大小進行排序,相同分值時以成員字典序排序。

數(shù)據(jù)結(jié)構(gòu)

  • 字符串

  • 散列

  • 列表

  • 集合

  • 有序集合

  • HyperLogLog

  • 位圖

  • 地理坐標(biāo)

有序集合(sorted set)

  • 添加或更新成員
    1.zadd命令??格式:zadd key [NX|XX] [GT|LT] [CH] [INCR] score member [score member …]
    返回添加成功的新成員數(shù)量,若執(zhí)行的是更新成員分值返回0。
    zadd key score member [score member ...]
    Redis有序集合如何使用
    XX選項的作用是只更新不添加,執(zhí)行后返回0。
    zadd key XX score member [score member ...]
    Redis有序集合如何使用
    NX選項的作用是只添加不更新,執(zhí)行成功返回添加元素的個數(shù)。
    zadd key NX score member [score member ...]
    Redis有序集合如何使用
    CH選項的作用是返回被修改成員的數(shù)量而非添加成功的成員數(shù)量,被修改包括新添加。
    zadd key CH score member [score member ...]
    Redis有序集合如何使用

  • 移除指定成員
    1.zrem命令??格式:zrem key member [member …]
    返回被移除成員的數(shù)量,成員不存在于集合中時自動忽略。
    zrem key member [member ...]
    Redis有序集合如何使用

  • 2.zremrangebyrank命令??格式:zremrangebyrank key start stop
    移除指定排名范圍內(nèi)的成員,返回被移除成員的數(shù)量,排名可使用正數(shù)排名或負(fù)數(shù)排名。
    zremrangebyrank key start stop
    Redis有序集合如何使用
    3.zremrangebyscore命令??格式:zremrangebyscore key min max
    移除指定分值范圍內(nèi)的成員,返回被移除成員的數(shù)量。min或max前加“(”表示取開區(qū)間即不包含邊界值。
    zremrangebyscore key min max
    Redis有序集合如何使用
    4.zremrangebylex命令??格式:zremrangebylex key min max
    對于按照字典序排列的有序集合(即分值相同),移除指定字典序范圍內(nèi)的成員。返回被移除成員的數(shù)量,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
    zremrangebylex key min max
    Redis有序集合如何使用

  • 彈出元素
    1.zpopmax命令??格式:zpopmax key [count]
    彈出分值最高的count個成員,分值最高有多個元素時彈出字典序最大的成員,若未指定count默認(rèn)1個,執(zhí)行完成后返回被彈出元素的成員和分值。
    zpopmax key [count]
    Redis有序集合如何使用
    2.zpopmin命令??格式:zpopmin key [count]
    彈出分值最低的count個成員,分值最低有多個元素時彈出字典序最小的成員,若未指定count默認(rèn)1個,執(zhí)行完成后返回被彈出元素的成員和分值。
    zpopmin key [count]
    3.bzpopmax命令??格式:bzpopmax key [key …] timeout
    阻塞式的zpopmax命令,timeout為秒級精度。命令依次檢查給定的有序集合,并從第一個非空集合彈出分值最大的元素,否則阻塞當(dāng)前客戶端直到有元素或超出超時時間返回nil。成功彈出元素時將返回一個列表,包含被彈出元素所在有序集合、成員以及分值。
    bzpopmax key [key ...] timeout
    Redis有序集合如何使用
    4.bzpopmin命令??格式:bzpopmin key [key …] timeout
    阻塞式的zpopmin命令,timeout為秒級精度。命令依次檢查給定的有序集合,并從第一個非空集合彈出分值最小元素,否則阻塞當(dāng)前客戶端直到有元素或超出超時時間返回nil。成功彈出元素時將返回一個列表,包含被彈出元素所在有序集合、成員以及分值。
    bzpopmin key [key ...] timeout
    Redis有序集合如何使用
    客戶端2:
    Redis有序集合如何使用

  • 獲取成員分值
    1.zscore命令??格式:zscore key member
    獲取給定成員的分值,集合不存在或者成員不存在時返回nil。
    zscore key member
    Redis有序集合如何使用

  • 對成員分值做運算
    1.zincrby命令??格式:zincrby key increment member
    執(zhí)行完后返回當(dāng)前成員分值,increment為正時自增,否則為自減;若鍵不存在或成員不存在則執(zhí)行創(chuàng)建操作。
    zincrby key increment member
    Redis有序集合如何使用

  • 獲取成員數(shù)量
    1.zcard命令??格式:zcard key
    返回集合包含的成員數(shù)量,集合不存在時返回0。
    zcard key
    Redis有序集合如何使用
    2.zcount命令??格式:zcount key min max
    獲取指定分值范圍內(nèi)的成員數(shù)量,min或max前加“(”表示取開區(qū)間即不包含邊界值,值+inf表示無窮大,-inf表示無窮小。
    zcount key min max
    Redis有序集合如何使用
    3.zlexcount命令??格式:zlexcount key min max
    對于按照字典序排列的有序集合(即分值相同),獲取指定字典序范圍內(nèi)的成員數(shù)量,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
    zlexcount key min max
    Redis有序集合如何使用

  • 獲取成員排名
    1.zrank命令??格式:zrank key member
    返回成員的升序排列排名,集合或成員不存在時返回nil。
    zrank key member
    Redis有序集合如何使用
    2.zrevrank命令??格式:zrevrank key member
    返回成員的降序排列排名,集合或成員不存在時返回nil。
    zrevrank key member
    Redis有序集合如何使用

  • 獲取成員
    1.zrange命令??格式:zrange key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
    獲取指定索引范圍內(nèi)的成員,按分值大小升序排列。WITHSCORES選項可在命令執(zhí)行后返回分值,返回列表奇數(shù)位為成員,偶數(shù)位為對應(yīng)分值。集合不存在時返回empty。
    zrange key min max [WITHSCORES]
    Redis有序集合如何使用
    2.zrevrange命令??格式:zrevrange key start stop [WITHSCORES]
    獲取指定索引范圍內(nèi)的成員,按分值大小降序排列。WITHSCORES選項可在命令執(zhí)行后返回分值,返回列表奇數(shù)位為成員,偶數(shù)位為對應(yīng)分值。集合不存在時返回empty。
    zrevrange key start stop [WITHSCORES]
    Redis有序集合如何使用
    3.zrangebyscore命令??格式:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
    獲取指定分值范圍內(nèi)的成員,按分值大小升序排列。WITHSCORES選項可在命令執(zhí)行后返回分值,返回列表奇數(shù)位為成員,偶數(shù)位為對應(yīng)分值。集合不存在時返回empty。
    zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
    Redis有序集合如何使用
    [LIMIT offset count]選項的作用是限制返回的成員數(shù)量,offset指定需要跳過的成員數(shù)量,count執(zhí)行最多返回成員的數(shù)量,count為負(fù)時取絕對值。
    Redis有序集合如何使用
    min或max前加“(”表示取開區(qū)間即不包含邊界值,值+inf表示無窮大,-inf表示無窮小。
    Redis有序集合如何使用
    4.zrevrangebyscore命令??格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
    獲取指定分值范圍內(nèi)的成員,按分值大小降序排列,注意max min順序。
    zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
    Redis有序集合如何使用
    5.zrangebylex命令??格式:zrangebylex key min max [LIMIT offset count]
    當(dāng)成員分值相同時,獲取指定字典序范圍內(nèi)成員,按字典序升序排列,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
    zrangebylex key min max [LIMIT offset count]
    Redis有序集合如何使用
    6.zrevrangebylex命令??格式:zrevrangebylex key max min [LIMIT offset count]
    當(dāng)成員分值相同時,獲取指定字典序范圍內(nèi)成員,按字典序降序排列,max、min的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。
    zrevrangebylex key max min [LIMIT offset count]

  • 集合運算
    1.并集
    ?1)zunionstore命令??格式:zunionstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
    numkeys為參與運算的集合數(shù)量,不對應(yīng)時返回error,執(zhí)行完后返回新集合的成員數(shù)量。并集得到的為成員集合,若參與運算的集合中有相同成員,則默認(rèn)新集合的成員分值為原集合成員分?jǐn)?shù)相加。
    zunionstore destination numkeys key [key ...]
    Redis有序集合如何使用
    AGGREGATE選項作用是指定使用的聚合函數(shù),不指定時默認(rèn)SUM。SUM指分值相加,MIN指取最小分值,MAX指取最大分值。
    zunionstore destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
    Redis有序集合如何使用
    WEIGHTS 選項作用是執(zhí)行聚合前為每個集合分別設(shè)置一個權(quán)重,權(quán)重分別與集合中成員分值相乘得到新分值,然后執(zhí)行聚合計算。
    Redis有序集合如何使用
    ?2)zunion命令??格式:zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    執(zhí)行完成后返回新集合成員。
    zunion numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    2.交集
    ?1)zinterstore命令??格式:zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
    執(zhí)行完后返回新集合的成員數(shù)量。
    zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
    ?2)zinter命令??格式:zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    執(zhí)行完后返回新集合成員。
    zinter numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
    注意
    1.集合運算可以使用集合作為輸入,默認(rèn)情況下,集合成員的分值看做1參與運算,可使用WEIGHTS選項設(shè)置權(quán)重改變集合分值。

  • 常見用法
    1.排行榜
    2.時間線

到此,關(guān)于“Redis有序集合如何使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當(dāng)前題目:Redis有序集合如何使用
網(wǎng)頁路徑:http://bm7419.com/article10/psdhdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)做網(wǎng)站、虛擬主機App設(shè)計、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計