<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-09 13:23:51
        文檔

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

        Nosql之Redis:zset(有序集)數據類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數據類型有極為相似,都是字符串的集合,都不允許重復的成員 出現在一個set中.兩者的主要區別是zset的每一個成員都會有一個分數(score)與之關聯.redis正是通過分數來為集合中的成員進行從小到大的排序.zset的成員
        推薦度:
        導讀Nosql之Redis:zset(有序集)數據類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數據類型有極為相似,都是字符串的集合,都不允許重復的成員 出現在一個set中.兩者的主要區別是zset的每一個成員都會有一個分數(score)與之關聯.redis正是通過分數來為集合中的成員進行從小到大的排序.zset的成員

        一:概述 zset全稱為sorted-sets類型,和set數據類型有極為相似,都是字符串的集合,都不允許重復的成員 出現在一個set中.兩者的主要區別是zset的每一個成員都會有一個分數(score)與之關聯.redis正是通過分數來為集合中的成員進行從小到大的排序.zset的成員是唯

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

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

        二:相關命令

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

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

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

        操作命令如下:

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

        #添加多個元素
        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 中的一個或多個成員,不存在的成員將被忽略。
        當 key 存在但不是有序集類型時,返回一個錯誤。
        時間復雜度:O(M*log(N)), N 為有序集的基數, M 為被成功移除的成員的數量。
        返回值:被成功移除的成員的數量,不包括被忽略的成員。
        操作命令如下:

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

        #移除單個元素
        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″
        #移除多個
        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集合的成員數
        時間復雜度:O(1)
        返回值:當 key 存在且是有序集(zset)類型時,返回集合內的成員數。不存在返回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 之間(默認包括 score 值等于 min 或 max )的成員的數量。
        時間復雜度: O(log(N)+M), N 為有序集的基數, M 為值在 min 和 max 之間的元素的數量。
        返回值:score 值在 min 和 max 之間的成員的數量。
        操作命令如下:
        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 。
        時間復雜度: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 。
        時間復雜度: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]
        描述:返回指定區間的成員。其中成員位置按 score 值遞增(從小到大)來排序。 WITHSCORES選項是用來讓成員和它的score值一并返回.(在前面我們已經用到過)
        時間復雜度:O(log(N)+M), N 為有序集的基數,而 M 為結果集的基數。
        返回值:返回指定區間的成員列表.
        操作命令如下:

        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″

        #當給定區間不存在于有序集時的情況
        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參數指定返回結果的數量及區間。
        時間復雜度:O(log(N)+M), N 為有序集的基數, M 為被結果集的基數。
        返回值:指定區間內,帶有 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.
        時間復雜度:O(log(N))
        返回值:返回成員排名,member不存在返回nil.

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

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

        12:zunionstore
        命令格式:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
        描述:計算給定的一個或多個有序集的并集,其中給定 key 的數量必須以 numkeys 參數指定,并將該并集(結果集)儲存到 destination 。默認情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之 和 。
        12: zinterstore
        命令格式:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
        描述:計算給定的一個或多個有序集的交集。其中給定 key 的數量必須以 numkeys 參數指定,并將該交集(結果集)儲存到 destination 。默認情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之 和 。
        時間復雜度:
        O(N*K)+O(M*log(M)), N 為給定 key 中基數最小的有序集, K 為給定有序集的數量, M 為結果集的基數。
        返回值:保存到 destination 的結果集成員數。
        操作命令如下:
        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″

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        Nosql之Redis:zset(有序集)數據類型及操作命令:一:概述 zset全稱為sorted-sets類型,和set數據類型有極為相似,都是字符串的集合,都不允許重復的成員 出現在一個set中.兩者的主要區別是zset的每一個成員都會有一個分數(score)與之關聯.redis正是通過分數來為集合中的成員進行從小到大的排序.zset的成員
        推薦度:
        標簽: 操作 數據 類型
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 性xxxxx免费视频播放| 无码人妻精品中文字幕免费| 在线看片无码永久免费视频| 麻豆亚洲AV永久无码精品久久| 怡红院免费全部视频在线视频| 亚洲性猛交XXXX| 日韩精品无码专区免费播放| 色播亚洲视频在线观看| 1000部国产成人免费视频| 亚洲人成网站日本片| 日韩视频免费在线| 青青草97国产精品免费观看| 亚洲熟女一区二区三区| 三年片在线观看免费大全电影| 久久夜色精品国产噜噜噜亚洲AV| 99爱在线精品免费观看| 亚洲欧美日韩综合久久久| 免费国产a国产片高清| eeuss免费影院| 亚洲网站在线免费观看| 猫咪社区免费资源在线观看| 在线精品自拍亚洲第一区| 亚洲精品偷拍视频免费观看| 无码日韩精品一区二区三区免费| 亚洲丝袜中文字幕| 国产精品亚洲高清一区二区| 久久综合给合久久国产免费 | 99re在线精品视频免费| 亚洲网站在线免费观看| 免费在线观看污网站| 无码国产精品一区二区免费模式| 亚洲中文字幕久在线| 亚洲免费一区二区| 免费在线看黄网站| 亚洲熟妇无码AV| 香蕉视频在线观看亚洲| 日韩a级毛片免费视频| 日本免费中文视频| 国产亚洲日韩在线a不卡| 精品无码一区二区三区亚洲桃色| 四虎www免费人成|