這篇文章主要介紹“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è)讓你可以放心的選擇與我們合作。
有序的集合。每個元素都由一個成員和一個與成員相關(guān)聯(lián)的分值組成,成員以字符串存儲,分值以64位雙精度浮點數(shù)存儲。成員不可重復(fù),以分值大小進行排序,相同分值時以成員字典序排序。
字符串
散列
列表
集合
有序集合
HyperLogLog
位圖
地理坐標(biāo)
流
添加或更新成員
1.zadd命令??格式:zadd key [NX|XX] [GT|LT] [CH] [INCR] score member [score member …]
返回添加成功的新成員數(shù)量,若執(zhí)行的是更新成員分值返回0。zadd key score member [score member ...]
XX選項的作用是只更新不添加,執(zhí)行后返回0。zadd key XX score member [score member ...]
NX選項的作用是只添加不更新,執(zhí)行成功返回添加元素的個數(shù)。zadd key NX score member [score member ...]
CH選項的作用是返回被修改成員的數(shù)量而非添加成功的成員數(shù)量,被修改包括新添加。zadd key CH score member [score member ...]
移除指定成員
1.zrem命令??格式:zrem key member [member …]
返回被移除成員的數(shù)量,成員不存在于集合中時自動忽略。zrem key member [member ...]
2.zremrangebyrank命令??格式:zremrangebyrank key start stop
移除指定排名范圍內(nèi)的成員,返回被移除成員的數(shù)量,排名可使用正數(shù)排名或負(fù)數(shù)排名。zremrangebyrank key start stop
3.zremrangebyscore命令??格式:zremrangebyscore key min max
移除指定分值范圍內(nèi)的成員,返回被移除成員的數(shù)量。min或max前加“(”表示取開區(qū)間即不包含邊界值。zremrangebyscore key min max
4.zremrangebylex命令??格式:zremrangebylex key min max
對于按照字典序排列的有序集合(即分值相同),移除指定字典序范圍內(nèi)的成員。返回被移除成員的數(shù)量,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。zremrangebylex key min max
彈出元素
1.zpopmax命令??格式:zpopmax key [count]
彈出分值最高的count個成員,分值最高有多個元素時彈出字典序最大的成員,若未指定count默認(rèn)1個,執(zhí)行完成后返回被彈出元素的成員和分值。zpopmax key [count]
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
4.bzpopmin命令??格式:bzpopmin key [key …] timeout
阻塞式的zpopmin命令,timeout為秒級精度。命令依次檢查給定的有序集合,并從第一個非空集合彈出分值最小元素,否則阻塞當(dāng)前客戶端直到有元素或超出超時時間返回nil。成功彈出元素時將返回一個列表,包含被彈出元素所在有序集合、成員以及分值。bzpopmin key [key ...] timeout
客戶端2:
獲取成員分值
1.zscore命令??格式:zscore key member
獲取給定成員的分值,集合不存在或者成員不存在時返回nil。zscore key member
對成員分值做運算
1.zincrby命令??格式:zincrby key increment member
執(zhí)行完后返回當(dāng)前成員分值,increment為正時自增,否則為自減;若鍵不存在或成員不存在則執(zhí)行創(chuàng)建操作。zincrby key increment member
獲取成員數(shù)量
1.zcard命令??格式:zcard key
返回集合包含的成員數(shù)量,集合不存在時返回0。zcard key
2.zcount命令??格式:zcount key min max
獲取指定分值范圍內(nèi)的成員數(shù)量,min或max前加“(”表示取開區(qū)間即不包含邊界值,值+inf表示無窮大,-inf表示無窮小。zcount key min max
3.zlexcount命令??格式:zlexcount key min max
對于按照字典序排列的有序集合(即分值相同),獲取指定字典序范圍內(nèi)的成員數(shù)量,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。zlexcount key min max
獲取成員排名
1.zrank命令??格式:zrank key member
返回成員的升序排列排名,集合或成員不存在時返回nil。zrank key member
2.zrevrank命令??格式:zrevrank key member
返回成員的降序排列排名,集合或成員不存在時返回nil。zrevrank key member
獲取成員
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]
2.zrevrange命令??格式:zrevrange key start stop [WITHSCORES]
獲取指定索引范圍內(nèi)的成員,按分值大小降序排列。WITHSCORES選項可在命令執(zhí)行后返回分值,返回列表奇數(shù)位為成員,偶數(shù)位為對應(yīng)分值。集合不存在時返回empty。zrevrange key start stop [WITHSCORES]
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]
[LIMIT offset count]選項的作用是限制返回的成員數(shù)量,offset指定需要跳過的成員數(shù)量,count執(zhí)行最多返回成員的數(shù)量,count為負(fù)時取絕對值。
min或max前加“(”表示取開區(qū)間即不包含邊界值,值+inf表示無窮大,-inf表示無窮小。
4.zrevrangebyscore命令??格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
獲取指定分值范圍內(nèi)的成員,按分值大小降序排列,注意max min順序。zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
5.zrangebylex命令??格式:zrangebylex key min max [LIMIT offset count]
當(dāng)成員分值相同時,獲取指定字典序范圍內(nèi)成員,按字典序升序排列,min、max的可取值包括:帶“[”的值表示包含字典序邊界,帶“(”表示不包含字典序邊界,“+”表示無窮大,“-”表示無窮小。zrangebylex key min max [LIMIT offset count]
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 ...]
AGGREGATE選項作用是指定使用的聚合函數(shù),不指定時默認(rèn)SUM。SUM指分值相加,MIN指取最小分值,MAX指取最大分值。zunionstore destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
WEIGHTS 選項作用是執(zhí)行聚合前為每個集合分別設(shè)置一個權(quán)重,權(quán)重分別與集合中成員分值相乘得到新分值,然后執(zhí)行聚合計算。
?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)