首頁 > 軟體

Redis基本資料型別Set常用操作命令

2022-05-31 18:01:07

Redis基本資料型別Set常用操作

Set是String型別的無序集合。集合成員是唯一的,這就意味著集合中不能出現重複的資料。

另外,redis中的set是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是 O(1)。

一、sadd 新增一個、多個元素

將一個或多個成員元素加入到集合中,已經存在於集合的成員元素將被忽略。
若key不存在,則建立一個只包含新增的元素作成員的集合。

sadd myset hello pingguo test

若key不是集合型別時,返回一個錯誤。

二、smembers 檢視集合

返回集合中的所有的成員。

smembers myset

三、scard 元素數量

返回集合中元素的數量。

scard myset

四、srem 移除一個、多個元素

用於移除集合中的一個或多個成員元素,不存在的成員元素會被忽略。
當key不是集合型別,返回一個錯誤。

srem myset hello test

五、srandmember 隨機元素

用於返回集合中的一個隨機元素。

srandmember myset 3

這裡隨機抽取3個元素,注意這裡僅僅返回隨機元素,而不對集合進行任何改動。

六、spop 隨機移除一個、多個元素

移除集合中的指定key的一個或多個隨機元素,移除後會返回移除的元素。

spop myset 2

跟上面的srandmember區別開,雖然都是隨機,但是這裡的spop修改了集合。

七、smove 移動元素到目標集合

smove source destination member將指定成員 member 元素從 source 集合移動到 destination 集合。

smove myset myset2 pingguo

如果原集合不存在或不包含指定的元素,則不執行任何操作,僅返回 0。否則,移動成功。

如果目標集合裡已經存在了此元素,那麼命令只會移除原集合裡的元素。

八、sdiff 差集

返回第一個集合與其他集合之間的差異,也可以說是第一個集合中獨有的元素。

sdiff myset myset2 myset3

注意,這裡差集的結果來自前面的myset

九、sinter 交集

返回給定所有給定集合的交集,當給定集合當中有一個空集時,結果也為空集。

sinter myset myset2 myset3sinter myset myset3

這裡當比較3個集合myset myset2 myset3時,myset2裡跟其他2個沒有任何交集,所以整個結果返回空集。

十、sunion 並集

返回給定集合的並集,不存在的集合 key 被視為空集。

sunion myset myset2 myset3

集合利用差、並、交集可以用來實現一些場景的功能。比如社交軟體中,把A使用者關注的所有人放到一個set裡,然後將B使用者的粉絲放另一個set2裡。
那麼A, B兩個使用者共同關注的人就是交集了。

以上就是Redis基本資料型別Set常用操作的詳細內容,更多關於Redis資料型別Set操作的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com