您好,登錄后才能下訂單哦!
sets類型及操作
set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交并差等操作,操作中key理解為集合的名字。
set的是通過hash table實現(即set并沒有順序)的,所以添加、刪除和查找的復雜度都是O(1)。hash table會隨著添加或者刪除自動的調整大小。需要注意的是調整hash table大小時候需要同步(獲取寫鎖)會阻塞其他讀寫操作,可能不久后就會改用跳表(skip list)來實現,跳表已經在sorted set中使用了。關于set集合類型除了基本的添加刪除操作,其他有用的操作還包含集合的取并集(union),交集(intersection),差集(difference)。通過這些操作可以很容易的實現sns中的好友推薦和blog的tag功能。
sadd
向集合set中添加指定元素.
如:sadd myset "hello"
srem
刪除set中的指定元素
如:srem myset “hello”
spop
隨機刪除set中元素并返回此數據
sdiff
返回set1在set2中沒有的元素.
如:sdiff set1 set2
sdiffstore
返回set1在set2中沒有的元素,并存儲到另一個set中.
如:sdiff set1 set2 set3
smembers
查看Set元素
如:smembers set1
sinter
返回指定的set(多個)的交集
如:sinter set1 set2 set3
sinterstore
返回指定的set(多個)的交集并保存為另一個set。
sunion
返回所有給定set的并集
如:sunion set1 set2 set3
sunionstore
返回所有給定set的并集,并存儲為另一個set
smove
從第一個set中移除member并添加到第二個對應set中
如:smove myset2 myset7 member
scard
返回set的元素個數
sismember
測試member是否是set的元素
srandmember
隨機返回set的一個元素,但是不刪除元素
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。