Redis 集合(Set)

Redis 集合(Set)

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

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

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

例項

redis 127.0.0.1:6379> SADD itread01key redis
(integer) 1
redis 127.0.0.1:6379> SADD itread01key mongodb
(integer) 1
redis 127.0.0.1:6379> SADD itread01key mysql
(integer) 1
redis 127.0.0.1:6379> SADD itread01key mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS itread01key

1) "mysql"
2) "mongodb"
3) "redis"

在以上例項中我們通過 SADD 命令向名為 itread01key 的集合插入的三個元素。


Redis 集合命令

下表列出了 Redis 集合基本命令:

序號命令及描述
1SADD key member1 [member2]
向集合新增一個或多個成員
2SCARD key
獲取集合的成員數
3SDIFF key1 [key2]
返回第一個集合與其他集合之間的差異。
4SDIFFSTORE destination key1 [key2]
返回給定所有集合的差集並存儲在 destination 中
5SINTER key1 [key2]
返回給定所有集合的交集
6SINTERSTORE destination key1 [key2]
返回給定所有集合的交集並存儲在 destination 中
7SISMEMBER key member
判斷 member 元素是否是集合 key 的成員
8SMEMBERS key
返回集合中的所有成員
9SMOVE source destination member
將 member 元素從 source 集合移動到 destination 集合
10SPOP key
移除並返回集合中的一個隨機元素
11SRANDMEMBER key [count]
返回集合中一個或多個隨機數
12SREM key member1 [member2]
移除集合中一個或多個成員
13SUNION key1 [key2]
返回所有給定集合的並集
14SUNIONSTORE destination key1 [key2]
所有給定集合的並集儲存在 destination 集合中
15SSCAN key cursor [MATCH pattern] [COUNT count]
迭代集合中的元素