redis的第四種資料結構 set

2021-10-13 01:54:06 字數 2801 閱讀 2918

前面幾篇文章講了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...