1. 程式人生 > >Redis的集合型別(Set)

Redis的集合型別(Set)

Redis的Set是string型別的無序集合。集合成員是唯一的,這就意味著集合中不能出現重複的資料。

Redis 中 集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是O(1)。

集合中最大的成員數為 2 32 - 1 (4294967295, 每個集合可儲存40多億個成員)。

本次演示set的基本操作

新增一個string元素到,key對應的set集合中,成功返回1,如果元素以及在集合中返回0,key對應的set不存在返回錯誤
127.0.0.1:6379> sadd test_set 222
(integer) 1

127.0.0.1:6379> sadd test_set 111
(integer) 1

127.0.0.1:6379> sadd test_set 333
(integer) 1

127.0.0.1:6379> sadd test_set 333
(integer) 0

返回集合中的所有成員
127.0.0.1:6379> smembers test_set
1) "111"
2) "222"
3) "333"

srandmember為返回集合中一個或多個隨機數
127.0.0.1:6379> srandmember test_set 2
1) "333"
2) "111" 

再新增一個set集合test_set2
127.0.0.1:6379> sadd test_set2 aaa
(integer) 1

127.0.0.1:6379> sadd test_set2 bbb
(integer) 1

127.0.0.1:6379> sadd test_set2 ccc
(integer) 1
 
sunion為返回所有給定集合的並集
127.0.0.1:6379> sunion test_set test_set2
1) "222"
2) "111"
3) "333"
4) "aaa"
5) "bbb"
6) "ccc"


Redis集合命令

SADD key member1 [member2] 向集合新增一個或多個成員

SCARD key 獲取集合的成員數

SDIFF key1 [key2] 返回給定所有集合的差集

SDIFFSTORE destination key1 [key2] 返回給定所有集合的差集並存儲在 destination 中

SINTER key1 [key2] 返回給定所有集合的交集

SINTERSTORE destination key1 [key2] 返回給定所有集合的交集並存儲在 destination 中

SISMEMBER key member 判斷 member 元素是否是集合 key 的成員

SMEMBERS key 返回集合中的所有成員

SMOVE source destination member 將 member 元素從 source 集合移動到destination 集合

SPOP key 移除並返回集合中的一個隨機元素

SRANDMEMBER key [count] 返回集合中一個或多個隨機數

SREM key member1 [member2] 移除集合中一個或多個成員

SUNION key1 [key2] 返回所有給定集合的並集

SUNIONSTORE destination key1 [key2] 所有給定集合的並集儲存在destination 集合中

SSCAN key cursor [MATCH pattern] [COUNTcount] 迭代集合中的元素