天天看點

Redis資料結構詳解之Set(三)序言操作單個set的指令操作多個set的指令小結

在Redis中,Set和list都是字元串序列,非常相似,不同之處在于Set是用哈希表來保持字元串的唯一性,沒有先後順序,不像list一樣,可以在首尾增删資料。但是set也有自己的相應處理指令來完成對自己的操作。下面我們來看下Set的指令怎麼使用。

redis中set清單的新增指令Sadd,key值相同下的value值不能重複,傳回插入的資料個數,key後面可跟多個value值

127.0.0.1:6379>sadd mySet 1   ---添加key為mySet的set資料值為1,

127.0.0.1:6379>sadd mySet 2 4 5  ---添加key為mySet的set資料值為2,

redis中檢視set資料集合的指令:smembers,可以擷取全部的元素,當set成員比較多時考慮其性能啊

127.0.0.1:6379>smembers  mySet     ---擷取key為mySet的說有set資料值集合

redis中set判斷某個key的value中是否存在某個值的指令:sismember ,如果存在傳回1,不存在傳回0

127.0.0.1:6379>sismember mySet 3  ---傳回值為0,因為myset的set成員中隻有1,2沒有3

127.0.0.1:6379>sismember mySet 2   ---傳回值為1,因為myset的Set成員中存在2.

redis中set的删除資料指令srem,傳回删除個數,key後面可跟多個value值

127.0.0.1:6379>srem mySet 1   ---删除key為mySet,value為1的資料項。

127.0.0.1:6379>srem mySet 2 4     ---删除key為mySet,value為2和4的2個資料項。

redis中檢視set資料個數的指令scard,如果不存在傳回0

127.0.0.1:6379>sadd mySet 1 2 3 4 5

127.0.0.1:6379>scrad mySet   ---檢視mySet中存在多少個資料項,傳回結果為5

redis中set随機檢視元素指令srandmember

127.0.0.1:6379>srandmember mySet   ---輸出key為mySet的資料項中的随機一個value,

redis中set随機删除一個元素的指令spop,并傳回輸出删除的資料

127.0.0.1:6379>spop mySet    ----随機從key為mySet的資料集合中删除一條資料,并傳回輸出删除的資料

127.0.0.1:6379>scard mySet    ---key為mySet的資料集合中的資料個數為4

set除了對一個set中的元素進行增删改查外,還可以對多個set進行操作,比如将一個set的元素移到另外一個set中,計算多個set的并集,交集,差集等操作。

redis中set将一個set中的元素移動到另外一個set中的指令smove

127.0.0.1:6379>sadd mySet 1 2 3    ----向mySet中添加3條資料 1 2 3

27.0.0.1:6379>sadd youSet 3 4 5     ----向youSet中添加3條資料 3 4 5

127.0.0.1:6379>smove youSet mySet 4  ---将youSet中的資料4移除的同時将資料4添加到mySet中

127.0.0.1:6379>smembers mySet   ---結果為:1 2 3 4

127.0.0.1:6379>smembers youSet   ---結果為 3 5

redis中set求交集指令sinter

127.0.0.1:6379>sinter mySet youSet   ---輸出結果為mySet和youSet的交集,輸出結果為:3

redis中set求并集的指令sunion

127.0.0.1:6379>sunion mySet youSet    ---輸出結果為mySet與youSet的并集,輸出結果為:1 2 3 4 5 

redis中set求差集的指令sdiff

127.0.0.1:6379>sdiff mySet youSet     ---輸出結果為mySet中youSet不存在的資料,輸出結果為:1 2 4

127.0.0.1:6379>sdiff youSet mySet   ---輸出結果為youSet中mySet不存在的資料,輸出結果為:5

如果你在看到本文後有什麼疑問,請加入部落格左上角群,一起交流學習。

繼續閱讀