国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 13:23:51
文檔

Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令

Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數(shù)據(jù)類型有極為相似,都是字符串的集合,都不允許重復(fù)的成員 出現(xiàn)在一個(gè)set中.兩者的主要區(qū)別是zset的每一個(gè)成員都會(huì)有一個(gè)分?jǐn)?shù)(score)與之關(guān)聯(lián).redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序.zset的成員
推薦度:
導(dǎo)讀Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數(shù)據(jù)類型有極為相似,都是字符串的集合,都不允許重復(fù)的成員 出現(xiàn)在一個(gè)set中.兩者的主要區(qū)別是zset的每一個(gè)成員都會(huì)有一個(gè)分?jǐn)?shù)(score)與之關(guān)聯(lián).redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序.zset的成員

一:概述 zset全稱為sorted-sets類型,和set數(shù)據(jù)類型有極為相似,都是字符串的集合,都不允許重復(fù)的成員 出現(xiàn)在一個(gè)set中.兩者的主要區(qū)別是zset的每一個(gè)成員都會(huì)有一個(gè)分?jǐn)?shù)(score)與之關(guān)聯(lián).redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序.zset的成員是唯

一:概述
zset全稱為sorted-sets類型,和set數(shù)據(jù)類型有極為相似,都是字符串的集合,都不允許重復(fù)的成員
出現(xiàn)在一個(gè)set中.兩者的主要區(qū)別是zset的每一個(gè)成員都會(huì)有一個(gè)分?jǐn)?shù)(score)與之關(guān)聯(lián).redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序.zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù).
在zset中添加、刪除或更新一個(gè)成員都是非常快速的操作,其時(shí)間復(fù)雜度為集合中成員數(shù)量的對(duì)數(shù).

Sorted-Sets中的成員在集合中的位置是有序的.

二:相關(guān)命令

1: zadd
命令格式: zadd key score member [[score] [member] …]

描述:將一個(gè)或多個(gè) member 元素及其 score 值加入到有序集 key 當(dāng)中.如果某個(gè) member 已經(jīng)是有序集的成員,那么更新這個(gè) member 的 score 值,并通過重新插入這個(gè) member 元素,來保證該 member 在正確的位置上。score 值可以是整數(shù)值或雙精度浮點(diǎn)數(shù)。如果 key 不存在,則創(chuàng)建一個(gè)空的有序集并執(zhí)行 ZADD 操作。當(dāng) key 存在但不是有序集類型時(shí),返回一個(gè)錯(cuò)誤。

時(shí)間復(fù)雜度: O(M*log(N)), N 是有序集的基數(shù), M 為成功添加的新成員的數(shù)量
返回值:被成功添加的新成員的數(shù)量,不包括那些被更新的、已經(jīng)存在的成員。

操作命令如下:

#添加一個(gè)元素
redis 127.0.0.1:6379> zadd zset_list 11 test1
(integer) 1

#添加多個(gè)元素
redis 127.0.0.1:6379> zadd zset_list 9 test2 10 test3
(integer) 2

#查看元素
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test2″
2) “9″
3) “test3″
4) “10″
5) “test1″
6) “11″
redis 127.0.0.1:6379> zrange zset_list 0 -1
1) “test2″
2) “test3″
3) “test1″

# 添加已存在元素,且 score 值不變 操作不成功返回0
redis 127.0.0.1:6379> zadd zset_list 10 test1
(integer) 0

redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test2″
2) “9″
3) “test1″
4) “10″
5) “test3″
6) “10″

# 添加已存在元素,但是改變 score 值
redis 127.0.0.1:6379> zadd zset_list 7 test1
(integer) 0
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test1″
2) “7″
3) “test2″
4) “9″
5) “test3″
6) “10″
2:zrem
命令格式: ZREM key member [member ...]

描述:移除有序集 key 中的一個(gè)或多個(gè)成員,不存在的成員將被忽略。
當(dāng) key 存在但不是有序集類型時(shí),返回一個(gè)錯(cuò)誤。
時(shí)間復(fù)雜度:O(M*log(N)), N 為有序集的基數(shù), M 為被成功移除的成員的數(shù)量。
返回值:被成功移除的成員的數(shù)量,不包括被忽略的成員。
操作命令如下:

redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test1″
2) “7″
3) “test2″
4) “9″
5) “test3″
6) “10″

#移除單個(gè)元素
redis 127.0.0.1:6379> zrem zset_list test1
(integer) 1
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test2″
2) “9″
3) “test3″
4) “10″
#移除多個(gè)
redis 127.0.0.1:6379> zrem zset_list test2 test3
(integer) 2
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
(empty list or set)

# 移除不存在元素
redis 127.0.0.1:6379> zrem zset_list non-exists-element
(integer) 0

3:zcard
描述:返回zset集合的成員數(shù)
時(shí)間復(fù)雜度:O(1)
返回值:當(dāng) key 存在且是有序集(zset)類型時(shí),返回集合內(nèi)的成員數(shù)。不存在返回0。
操作命令如下:
redis 127.0.0.1:6379> zcard zset_list
(integer) 0
redis 127.0.0.1:6379> zadd zset_list 1 test1
(integer) 1
redis 127.0.0.1:6379> zcard zset_list
(integer) 1

4:zcount
命令格式:ZCOUNT key min max
描述:返回有序集 key 中, score 值在 min 和 max 之間(默認(rèn)包括 score 值等于 min 或 max )的成員的數(shù)量。
時(shí)間復(fù)雜度: O(log(N)+M), N 為有序集的基數(shù), M 為值在 min 和 max 之間的元素的數(shù)量。
返回值:score 值在 min 和 max 之間的成員的數(shù)量。
操作命令如下:
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test1″
2) “1″
3) “test2″
4) “100″
5) “test3″
6) “200″
7) “test4″
8) “300″
redis 127.0.0.1:6379> zcount zset_list 100 200
(integer) 2
redis 127.0.0.1:6379> zcount zset_list 100 300
(integer) 3
5: zscore
命令格式:ZSCORE key member
描述:返回有序集 key 中,成員 member 的 score 值。
如果 member 元素不是有序集 key 的成員,或 key 不存在,返回 nil 。
時(shí)間復(fù)雜度:O(1)
操作命令如下:
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test1″
2) “1″
3) “test2″
4) “100″
5) “test3″
6) “200″
7) “test4″
8) “300″
redis 127.0.0.1:6379> zscore zset_list test2
“100″

6:zincrby
命令格式:ZINCRBY key increment member
描述:為有序集 key 的成員 member 的 score 值加上增量 increment 。
時(shí)間復(fù)雜度:O(log(N))
返回值: 返回member 成員的新 score 值,以字符串形式表示。
操作命令如下:
redis 127.0.0.1:6379> zscore zset_list test2
“100″
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> zincrby zset_list 10 test2
“110″
redis 127.0.0.1:6379> zincrby zset_list -6 test2
“104″
7:zrange
命令格式: ZRANGE key start stop [WITHSCORES]
描述:返回指定區(qū)間的成員。其中成員位置按 score 值遞增(從小到大)來排序。 WITHSCORES選項(xiàng)是用來讓成員和它的score值一并返回.(在前面我們已經(jīng)用到過)
時(shí)間復(fù)雜度:O(log(N)+M), N 為有序集的基數(shù),而 M 為結(jié)果集的基數(shù)。
返回值:返回指定區(qū)間的成員列表.
操作命令如下:

redis 127.0.0.1:6379> zrange zset_list 0 -1
1) “test1″
2) “test2″
3) “test3″
4) “test4″
redis 127.0.0.1:6379> zrange zset_list 0 -1 withscores
1) “test1″
2) “1″
3) “test2″
4) “104″
5) “test3″
6) “200″
7) “test4″
8) “300″

#當(dāng)給定區(qū)間不存在于有序集時(shí)的情況
redis 127.0.0.1:6379> zrange zset_list 10000 30000 withscores
(empty list or set)

7:zrevrange
命令格式:ZREVRANGE key start stop [WITHSCORES]
描述:和zrange一樣使用,唯一不同是其成員位置按 score 值遞減(從大到小)來排列。
8:zrangebyscore
命令格式:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
描述:返回有序集key中所有score值介于min與max之間(包括等于)的成員.成員按score值遞增(從小到大)排列 。min 和 max 可以是 -inf 和 +inf
可選limit參數(shù)指定返回結(jié)果的數(shù)量及區(qū)間。
時(shí)間復(fù)雜度:O(log(N)+M), N 為有序集的基數(shù), M 為被結(jié)果集的基數(shù)。
返回值:指定區(qū)間內(nèi),帶有 score 值(可選)的有序集成員的列表。
操作命令如下:
redis 127.0.0.1:6379> zrangebyscore zset_list -inf +inf
1) “test1″
2) “test2″
3) “test3″
4) “test4″
redis 127.0.0.1:6379> zrangebyscore zset_list -inf +inf withscores
1) “test1″
2) “1″
3) “test2″
4) “104″
5) “test3″
6) “200″
7) “test4″
8) “300″
redis 127.0.0.1:6379> zrangebyscore zset_list -inf 100 withscores
1) “test1″
2) “1″

#顯示大于100 小于等于700的成員
redis 127.0.0.1:6379> zrangebyscore zset_list (100 700
1) “test2″
2) “test3″
3) “test4″

#顯示條件 100 < score < 700 的成員
redis 127.0.0.1:6379> zrangebyscore zset_list (100 (700
1) “test2″
2) “test3″
3) “test4″
8:zrevrangebyscore
命令格式: zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
描述:和zrangebyscoreg一樣,唯一不同的是成員按 score 值遞減(從大到小)的次序排列。

9:zrank
命令格式: zrank key member
描述:返回有序集key中成員member的排名。成員按 score 值遞增(從小到大)順序排列。
排名以0開始,也就是說score 值最小的為0.
時(shí)間復(fù)雜度:O(log(N))
返回值:返回成員排名,member不存在返回nil.

9:zrevrank
命令格式: zrevrank key member
描述:返回有序集key中成員member的排名。成員按 score 值遞增(從大到小)順序排列。
排名以0開始,也就是說score 值最大的為0.
時(shí)間復(fù)雜度:O(log(N))
返回值:返回成員排名,member不存在返回nil.
10:zremrangebyrank
命令格式: ZREMRANGEBYRANK key start stop
描述:移除有序集 key 中,指定排名(rank)區(qū)間內(nèi)的所有成員。區(qū)間分別以下標(biāo)參數(shù) start 和 stop 指出,包含 start 和 stop 在內(nèi)。
下標(biāo)參數(shù) start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個(gè)成員,以 1 表示有序集第二個(gè)成員,以此類推。
你也可以使用負(fù)數(shù)下標(biāo),以 -1 表示最后一個(gè)成員, -2 表示倒數(shù)第二個(gè)成員,以此類推。
時(shí)間復(fù)雜度:O(log(N)+M), N 為有序集的基數(shù),而 M 為被移除成員的數(shù)量。
返回值:被移除成員的數(shù)量。

11:zremrangebyscore
命令格式:zremrangebyscore key min max
描述:移除score值介于min和max之間(等于)的成員
時(shí)間復(fù)雜度:O(log(N)+M), N 為有序集的基數(shù),而 M 為被移除成員的數(shù)量。
返回值:被移除成員的數(shù)量。
操作如下:
# 移除所有score在 150 到 350 內(nèi)的數(shù)據(jù)
redis> zremrangebyscore zset_list 100 200
(integer) 1

12:zunionstore
命令格式:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
描述:計(jì)算給定的一個(gè)或多個(gè)有序集的并集,其中給定 key 的數(shù)量必須以 numkeys 參數(shù)指定,并將該并集(結(jié)果集)儲(chǔ)存到 destination 。默認(rèn)情況下,結(jié)果集中某個(gè)成員的 score 值是所有給定集下該成員 score 值之 和 。
12: zinterstore
命令格式:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
描述:計(jì)算給定的一個(gè)或多個(gè)有序集的交集。其中給定 key 的數(shù)量必須以 numkeys 參數(shù)指定,并將該交集(結(jié)果集)儲(chǔ)存到 destination 。默認(rèn)情況下,結(jié)果集中某個(gè)成員的 score 值是所有給定集下該成員 score 值之 和 。
時(shí)間復(fù)雜度:
O(N*K)+O(M*log(M)), N 為給定 key 中基數(shù)最小的有序集, K 為給定有序集的數(shù)量, M 為結(jié)果集的基數(shù)。
返回值:保存到 destination 的結(jié)果集成員數(shù)。
操作命令如下:
redis 127.0.0.1:6379> zrange z_ulist_1 0 -1 withscores
1) “jack”
2) “20″
3) “abc”
4) “30″
5) “bb”
6) “50″
7) “cc”
8) “50″
redis 127.0.0.1:6379> zadd z_ulist_2 20 bb 40 789 48 a980
(integer) 3
redis 127.0.0.1:6379> zinterstore z_ulist_x 2 z_ulist_1 z_ulist_2
(integer) 1
redis 127.0.0.1:6379> zrange z_ulist_x 0 -1 withscores
1) “bb”
2) “70″

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令

Nosql之Redis:zset(有序集)數(shù)據(jù)類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數(shù)據(jù)類型有極為相似,都是字符串的集合,都不允許重復(fù)的成員 出現(xiàn)在一個(gè)set中.兩者的主要區(qū)別是zset的每一個(gè)成員都會(huì)有一個(gè)分?jǐn)?shù)(score)與之關(guān)聯(lián).redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序.zset的成員
推薦度:
標(biāo)簽: 操作 數(shù)據(jù) 類型
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 中文字幕美日韩在线高清 | 美女牲交视频一级毛片 | 国产一区二区三区 韩国女主播 | 手机精品在线 | 日本成人a | 亚洲一区二区综合 | 成人黄色在线观看 | 亚洲国产成人精品一区二区三区 | 成人免费久久精品国产片久久影院 | 91精品日本久久久久久牛牛 | 欧美成人禁片在线观看网址 | 欧美日韩欧美日韩 | 亚洲欧美日本在线 | 中文亚洲欧美日韩无线码 | 四虎91视频| 国产免费高清视频在线观看不卡 | 亚洲欧美日韩另类在线专区 | 国产精自产拍久久久久久 | 日本1区2区3区电 | 999久久久免费精品国产牛牛 | 国产精品一区二区三 | 日韩欧美一区二区三区在线播放 | 免费又黄又爽又猛大片午夜 | 日韩欧美综合在线 | 国产美女视频黄a视频免费全过程 | 久久久久久久99久久久毒国产 | 国产一区二区在线观看视频 | 国产片欧美片亚洲片久久综合 | 欧美2区| 91香蕉国产亚洲一区二区三区 | 国产综合精品久久久久成人影 | 国产色综合久久无码有码 | 黄色在线免费看 | 精品国产91久久久久久久 | 91岛国| 亚洲一区二区在线 | 国内精品伊人久久久久妇 | 欧美v日韩v亚洲v最新 | 日韩毛片免费观看 | 免费a一毛片 | 日韩欧美伊人久久大香线蕉 |