Redis學習筆記(4)

2021-07-04 18:38:50 字數 1503 閱讀 2694

集合:在集合中每個元素都是不同的,且沒有順序。常用的操作是向集合加入或刪除元素。判斷某個元素是否存在等,由於集合型別在redis內部是使用值為空的三列表實現的,所以這些操作的時間複雜度都是0(1)。最方便的是多個集合型別鍵之間還可以進行並集,交集和差運算。命令

1 增加/刪除元素

sadd key member[member...]  可以向集合增加乙個或多個元素,如果鍵不存在則會自動建立。如果已經有就忽略這個元素。返回加入元素的個數

srem key member[member...] 刪除乙個或多個元素,返回刪除個數

2 獲得集合中的所有元素

smembers key

3 判斷元素是否在集合中

sismember key member  存在返回1,不存在返回0
4 集合運算

sdiff key [key ...]

sinter key [key...]

sunion key [key...]

(1)sdiff命令用來對多個集合執行差集運算。集合a與集合b的差集表示a-b,代表有屬於a且不屬於b的元素構成的集合。

(2)sinter命令用來對多個集合執行交集運算。集合a與集合b的交集,代表所有屬於a且屬於b的元素構成的集合。

(3)sunion命令用來對多個集合執行並集運算。集合a與集合b的並集,代表所有屬性a或屬於b的元素構成的集合。

5 獲得集合中元素個數

scard key
6 進行集合運算並將結果儲存

sdiffstore destination key [key...]

sinterstore destination key [key...]

sunionstore destination key [key...]

(1)sdiffstore命令和sdiff命令功能一樣,唯一的區別就是前者不會直接返回運算結果,而是將結果儲存在destination鍵中。

sdiffstore命令常用於需要進行多步集合運算的場景中,如果需要先計算差集再將結果和其他鍵值計算交集。其他兩個命令類似。

7 隨機獲得集合中的元素

srandmember key [count]  count代表隨機獲得幾個元素
(1)當count為正數時,srandmember會隨機從集合裡獲得count個不重複的元素。如果

count的值大於集合中的元素個數,則srandmember會返回集合中的全部元素。

(2)當count為負數時,srandmember會隨機從集合裡獲得|count|個的元素,這些元素有

可能相同。

8 從集合中彈出乙個元素

spop key 因為集合是無序的,所以彈出來的也是隨機的

Redis學習筆記(4)

為了避免服務的單點故障,會把資料複製到多個副本放在不同的伺服器上,且這些擁有資料副本的伺服器可以用於處理客戶端的讀請求,擴充套件整體的效能。我們把這種機制稱之為主從複製,即master sl e複製機制。主從複製的優勢 讀寫分離 容災恢復 資料冗餘 熱備份 概述 我們可以通過sl eof 命令,或者...

redis學習筆記4(hashes)

redis學習筆記4 hashes 一 概述 我們可以將redis中的hashes型別看成具有string key和string value的map容器。所以該型別非常適合於儲存值物件的資訊。如username password和age等。如果hash中包含很少的字段,那麼該型別的資料也將僅占用很少...

Redis學習筆記4 Redis資料儲存優化機制

1.zipmap優化hash 前面談到將乙個物件儲存在hash型別中會占用更少的記憶體,並且可以更方便的訪問整個物件。省記憶體的原因是新建乙個hash物件時開始是用zipmap來儲存的。這個zipmap其實並不是hash table,但是zipmap相比正常的hash實現可以節省不少hash本身需要...