前面幾篇文章講了redis的string / hash / list,今天寫一下set。
redis的集合和數學上的集合是一樣的,set命令都以s開頭
1.新增元素到集合 sadd key member…
> sadd s1 1 2 3
(integer) 3
> sadd s1 3
(integer) 0
> sadd s1 2 3 4 5
(integer) 2
2.檢視集合中的元素 smembers key
> smembers s1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
3.檢視集合中元素個數 scard key
> scard s1
(integer) 5
4.元素是否在集合中 sismember key member
> sismember s1 9
(integer) 0
> sismember s1 1
(integer) 1
5.刪除集合中的元素 srem key member…
> srem s1 4 5
(integer) 2
> smembers s1
1) "1"
2) "2"
3) "3"
6.隨機挑幾個元素出來(集合內元素不變) srandmember key [count]
> srandmember s1
"2"> srandmember s1 2
1) "3"
2) "1"
如果count超過了集合大小:
> srandmember s1 4
1) "1"
2) "2"
3) "3"
scard 操作,集合類元素不會發生改變
> scard s1
(integer) 3
7.隨機pop幾個元素出來(集合內元素發生改變) spop key [count]
> spop s1
"2"> scard s1
(integer) 2
如果count超過了集合大小:
> spop s1 6
1) "1"
2) "3"
> scard s1
(integer) 0
集合中的元素被pop完時,key也被自動刪除
> keys *
(empty array)
交集/並集/差集
資料準備
> flushall # 刪除所有key
ok> sadd s1 1 2 3
(integer) 3
> sadd s2 2 3 4
(integer) 3
> sadd s3 2 5 6
(integer) 3
8.交集 sinter key1 key2 …
> sinter s1 s2
1) "2"
2) "3"
> sinter s1 s2 s3
1) "2"
9.差集 sdiff key1 key2 …
> sdiff s1 s2
1) "1"
10.並集 sunion key1 key2 …
> sunion s1 s2
1) "1"
2) "2"
3) "3"
4) "4"
11. store 操作
sunionstore destination key1 key2…
將集合運算的結果儲存到destination中,如果destination已經存在,則將其覆蓋。
> sunionstore s4 s1 s2 s3
(integer) 6
> smembers s4
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
此外還有:sdiffstore ,sinterstore 用法和上面一樣
12.移動元素 smove source destination member
將source中的member移動到destination中
如果source集合或member不存在,不執行任何操作,返回0
> smove s1 s2 1
(integer) 1
> smembers s1
1) "2"
2) "3"
> smembers s2
1) "1"
2) "2"
3) "3"
4) "4"
Redis五種資料結構
redis除了儲存鍵之外還可以儲存常見的5種資料型別,分別是 string list set zset hash。結構型別 結構儲存的值 結構的讀寫能力 string字串 可以是字串 整數或浮點數 對整個字串或字串的一部分進行操作 對整數或浮點數進行自增或自減操作 list列表 乙個鍊錶,鍊錶上的每...
Redis五種資料結構
對redis來說,所有的key 鍵 都是字串,所謂的5種資料結構是指針對value而言 資料結構型別 說明使用場景 常用方法 其他鏈結 string字串型別1 redis中最基本的資料型別,乙個key對應乙個value。2 是二進位制安全的,意思是 redis 的 string 可以包含任何資料。如...
Redis的5種資料結構
參考 基本型別有5個,string,mapmap,list,set,zset 從上到下一一對應,這是我取得別名 string 就是儲存二進位製流,這時候,jpg等,只要轉碼成功,均可儲存。mapmap 之所以叫mapmap,是因為,redis本身就是個map,而且儲存的不僅僅是乙個map,而是。ma...