Redis學習筆記---數據類型二(set、sortedset)

這篇是接着上篇來的,因此標號就繼續了~~~~ 數組

4、set spa

     介紹:
    set集合元素是不重複的無序的。set類型與list類型有類似之處,如圖:
    
    
    命令:
    ①sadd/smembers/srem/sismember  添加/獲取/刪除/是不是set的元素
        sadd set a,sadd set b,
        smembers set(返回set集合全部的元素) srem set a, sismember b
        sadd set1 a b c
    ②sdiff/sinter(交集)/sunion(並集)
        sdiif set set1 返回差集,即返回set有的而set2中沒有
        sinter set set1 返回兩個set都有的
        sunion set set1 返回兩個的都有的
    ③sdiffstore/sinterstore/sunionstore
        將②中的數據存儲  sdiffstore a1 set set1 存到a1中 a1也是一個set集合
    ④scard(獲取集合長度)/spop(隨機從集合中取出並刪除一個元素)
        scard set 返回set集合長度,spop set 隨機從set中彈出一個元素
    ⑤srandmember key [count]
        若是 count 爲正數,且小於集合基數,那麼命令返回一個包含 count 個元素的數組,數組中的元素各不相同。
ip

        若是 count 大於等於集合基數,那麼返回整個集合。
        若是 count 爲負數,那麼命令返回一個數組,數組中的元素可能會重複出現屢次,而數組的長度爲 count 的絕對值。
內存

5、sortedset     rem

    介紹:
    有序集合,在set集合類型的基礎上爲集合中的每一個元素都關聯了一個分數,這樣能夠很方便的得到分數最高的N個元素(topN)。
    有序集合類型和列表類型的差別
    相同點
        (1)兩者都是有序的
        (2)兩者均可以得到某一範圍的元素
    不一樣點
        (1)列表類型是經過雙向鏈表實現的,獲取靠近兩端的數據速度極快,當列表中元素增多後,訪問中間的數據速度會很慢,因此它比較適合不多訪問中間元素的應用
        (2)有序集合類型是使用散列表和跳躍表(skip list)實現的,因此即便讀取位於中間部分的數據速度也很快
        (3)列表中不能簡單的調整某個元素的位置,可是有序集合能夠(經過更改這個元素的分值)
        (4)有序集合要比列表類型更耗費內存
    命令:
    ①zadd/zscore/zrange/zrevrange/  添加/獲取指定元素分數/從小到大返回/從大到小返回
        zadd zset 10 a zadd zset 20 b zadd zset 5 c
        zscore zset b(返回20)
        zrange zset 0 -1 返回(c a b)有序
        zrevrange zset 0 -1 (b a c)
    ②zrangebyscore(默認是閉區間,可以使用"("使用開區間)
        zrangebyscore zset 0 10 獲取zset中0分到10分的元素 這裏返回c和a
        zrangebyscore zset 0 (10 獲取zset中0分到10分的元素 這裏返回c
    ③zincrby/zcard/zcount(獲取指定分數範圍的元素個數)
        zincrby zset 6 c 讓zset中c元素的值加6
        zcard zset 返回zset中元素個數
        zcount zset 0 10 指定分數範圍的元素
    ④zrem/zremrangebyrank/zremrangebyscore
        zrem zset a
        zremrangebyrank zset 0 1 角標區間刪除
        zremrangebyscore zset 0 10 分數範圍刪除
擴展:+inf(正無窮)    -inf(負無窮)
io

相關文章
相關標籤/搜索