# Set（集合）

URL: https://caijiao.org/redis/03-data-structures/03-set
Source: docs/redis/03-data-structures/03-set.md
Description: Redis 的 Set（集合）是一种无序且不重复的字符串集合，支持高效的添加、删除、判断和集合运算，广泛用于标签管理、好友关系和推荐系统等场景。

Redis 中的 Set 是一个无序且唯一的字符串集合。它自动去重，允许高效地执行集合相关操作。

## 基本操作

- **SADD**：向集合添加一个或多个元素

```bash
SADD key member [member ...]
````

* **SREM**：移除一个或多个元素

```bash
SREM key member [member ...]
```

* **SMEMBERS**：获取集合所有成员

```bash
SMEMBERS key
```

* **SISMEMBER**：判断某个元素是否是集合成员

```bash
SISMEMBER key member
```

## 集合运算

* **SINTER**：求多个集合的交集

```bash
SINTER key1 key2 [key3 ...]
  ```

* **SUNION**：求多个集合的并集

```bash
SUNION key1 key2 [key3 ...]
```

* **SDIFF**：求多个集合的差集

```bash
SDIFF key1 key2 [key3 ...]
```

## 其他命令

* **SCARD**：获取集合中元素数量

```bash
SCARD key
```

* **SRANDMEMBER**：随机返回集合中的一个或多个元素

```bash
SRANDMEMBER key [count]
```

## 应用场景

Set 适合用于标签管理、社交网络好友关系、用户兴趣分类及推荐系统中需要高效去重和集合运算的场景。
