Redis 笔记(06)— set 类型(向集合添加元素、获取集合元素个数、判断集合中是否包含某个元素、删除给定元素、返回集合中所有元素、计算集合的交集、并集、差集)
生活随笔
收集整理的這篇文章主要介紹了
Redis 笔记(06)— set 类型(向集合添加元素、获取集合元素个数、判断集合中是否包含某个元素、删除给定元素、返回集合中所有元素、计算集合的交集、并集、差集)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Redis 的 set 集合內(nèi)部的鍵值對是無序的唯一的。它的內(nèi)部實(shí)現(xiàn)相當(dāng)于一個(gè)特殊的字典,字典中所有的 value 都是一個(gè)值 NULL 。當(dāng)集合中最后一個(gè)元素移除之后,數(shù)據(jù)結(jié)構(gòu)自動(dòng)刪除,內(nèi)存被回收。
set 結(jié)構(gòu)可以用來存儲活動(dòng)中獎(jiǎng)的用戶 ID,因?yàn)橛腥ブ毓δ?#xff0c;可以保證同一個(gè)用戶不會(huì)中獎(jiǎng)兩次。
1. set 類型相關(guān)命令
| 命令 | 說明 |
|---|---|
| sadd key member | 添加一個(gè)string元素到key對應(yīng)的set集合中 |
| scard key | 返回set的元素個(gè)數(shù) |
| sismember key member | 判斷member是否在set中 |
| srem key member | 從key對應(yīng)set中移除給定元素 |
| smembers key | 返回key對應(yīng)set的所有元素,結(jié)果是無序的 |
| spop key[count] | 刪除并取得一個(gè)集合里面的元素 |
| srandmember key [count] | 從集合中隨機(jī)獲取一個(gè)key |
| smove p1 p2 member | 從p1對應(yīng)set中移除給定元素并添加到p2對應(yīng)set中 |
| sinter key p1 p2…pN | 返回所有給定key的交集 |
| sunion key p1 p2…pN | 返回所有給定key的并集 |
| sdiff key p1 p2…pN | 返回所有給定key 的差集 |
| sinterstore destination key [key….] | 獲取兩個(gè)集合的交集,并存儲在一個(gè)關(guān)鍵的結(jié)果集 |
| sunionstore destination key [key…] | 合并set集合,并將結(jié)果存入新的set里面 |
| sdifferstore destination key[key…] | 獲取隊(duì)列的差集,并存儲在一個(gè)新的結(jié)果集 |
| smove source destination member | 移動(dòng)集合里的一個(gè)key到另一個(gè)集合 |
2. set 類型 使用示例
127.0.0.1:6379> sadd set "east"
(integer) 1
127.0.0.1:6379> sadd set "west"
(integer) 1
127.0.0.1:6379> sadd set "south"
(integer) 1
127.0.0.1:6379> sadd set "north"
(integer) 1
127.0.0.1:6379> scard set
(integer) 4
127.0.0.1:6379> sismember set "middle"
(integer) 0
127.0.0.1:6379> sismember set "south"
(integer) 1
127.0.0.1:6379> sadd set "middle"
(integer) 1
127.0.0.1:6379> scard set
(integer) 5
127.0.0.1:6379> smembers set # 注意順序,和插入的并不一致,因?yàn)?set 是無序的
1) "east"
2) "south"
3) "north"
4) "west"
5) "middle"
127.0.0.1:6379> spop set
"middle"
127.0.0.1:6379> srandmember set
"east"
127.0.0.1:6379> srandmember set
"east"
127.0.0.1:6379> srandmember set
"west"
127.0.0.1:6379> scard set
(integer) 4
127.0.0.1:6379> sadd set_a 1
(integer) 1
127.0.0.1:6379> sadd set_a 2
(integer) 1
127.0.0.1:6379> sadd set_a 3
(integer) 1
127.0.0.1:6379> sadd set_b 2
(integer) 1
127.0.0.1:6379> sadd set_b 3
(integer) 1
127.0.0.1:6379> sadd set_b 4
(integer) 1
127.0.0.1:6379> smove set set_a east
(integer) 1
127.0.0.1:6379> smembers set_a
1) "east"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> sinter set_a set_b
1) "2"
2) "3"
127.0.0.1:6379> sunion set_a set_b
1) "2"
2) "4"
3) "east"
4) "3"
5) "1"
127.0.0.1:6379> sdiff set_a set_b
1) "east"
2) "1"
127.0.0.1:6379> smove set set_a
(error) ERR wrong number of arguments for 'smove' command
127.0.0.1:6379> smove set set_a west
(integer) 1
127.0.0.1:6379> smembers set_a
1) "east"
2) "3"
3) "2"
4) "1"
5) "west"
127.0.0.1:6379>
總結(jié)
以上是生活随笔為你收集整理的Redis 笔记(06)— set 类型(向集合添加元素、获取集合元素个数、判断集合中是否包含某个元素、删除给定元素、返回集合中所有元素、计算集合的交集、并集、差集)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 笔记(05)— hash 类
- 下一篇: Redis 高级特性(1)—— 事务 过