• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: | 99精品影院| 无码人妻精品一区二 | 人妻无码精品久久亚瑟影视| 韩国精品欧美一区二区三区| 日本一卡精品视频免费| 久热精品人妻视频| 国产精品国产三级在线高清观看 | 99精品热这里只有精品 | 国产亚洲曝欧美不卡精品| 亚洲国产精品综合久久网络| 国产成人精品亚洲精品| 精品一区二区久久| 999成人精品视频在线| 国产精品视频永久免费播放| 午夜欧美精品久久久久久久| 亚洲精品欧美精品日韩精品| 蜜臀精品无码AV在线播放| 国产精品小视频免费无限app| 日韩精品免费视频| 欧洲精品视频在线观看| 99re国产精品视频首页| 97精品人妻系列无码人妻| 精品久久人妻av中文字幕| 人人妻人人澡人人爽人人精品电影 | 久久国产精品久久| 久久91精品国产91久久麻豆| av国内精品久久久久影院| 国产精品乱码高清在线观看 | 亚洲av无码成人精品区| 欧美精品人人做人人爱视频| 国语自产精品视频在线观看| 国产三级精品三级在线观看专1| 777欧美午夜精品影院| 欧美韩国精品另类综合| 久久91精品国产91久久户| 日韩精品www| 国内精品久久久久久中文字幕| 精品国产婷婷久久久| 精品欧美激情在线看| 免费视频成人国产精品网站|