# sadd

### 1. 基本語法

#### sad&#x64;**(`key`, `value[, value, ...]`)**&#x20;

&#x82E5;**`key`**&#x4E0D;存在則創建集合。&#x82E5;**`key`**&#x5B58;在則新增集合成員，&#x82E5;**`value`**&#x5DF2;存在於集合成員中則該`value`不會再新增到集合中。

**sadd**執行成功則回傳新增的成員數量(不包括已存在的成員)，而不是集合的成員數量。若執行對&#x8C61;**`key`**&#x5C0D;應的不是集合，則回傳錯誤。

### **2. 範例**

**(1) 重複的成員會忽略新增動作，集合內的成員不會重複出現。**

> **透過**[**smembers**](https://app.gitbook.com/@aiii-mike/s/redis/~/drafts/-Mcsj8mGLdoZZmOdtXil/command/set/smembers)**取得集合內所有成員**

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.sadd('food', 'apple');
client.sadd('food', 'apple');
client.sadd('food', 'onion');
client.sadd('food', 'apple', 'potato');
client.sadd('food', 'potato', 'onion');
client.sadd('food', 'apple', 'potato', 'potato');
client.smembers('food', redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: apple,potato,onion
```
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Redis中的set資料為無序集合，並不會按照字母或特定順序排序成員。
{% endhint %}

### 2. 透過Array創建集合

#### sad&#x64;**(`key`, `[value, ...]`)**&#x20;

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.del('food');

const arr = ['apple', 'potato', 'apple', 'onion', 'potato', 'onion']
client.sadd('food', arr);
client.smembers('food', redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: apple,onion,potato
```
{% endtab %}
{% endtabs %}
