# Set

### 資料結構

Redis中的集合(Set)資料為一個Key名稱對應一組無序收集器(unordered collection)，收集器中所包含的每個字符串於本教學稱之為**成員(member)**，一個集合資料可包含多個成員，集合中的每個成員都是唯一的存在，意即任意兩個成員的資料內容都不會重複。

![Example of Redis Set Structure : A Key point to an Unordered Collection](https://224613336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mb64kSCne8LKJiDOD49%2F-MfCJVXOphXT4dY5OlRG%2F-MfCLJTc_NjjkSmOBJ6u%2F%E7%B4%A0%E6%9D%90.006.jpeg?alt=media\&token=4bc8cf8c-a3c4-4bdf-b0b3-a116b45715aa)

集合中的成員並無順序之分，可以快速的添加、移除成員或檢查一個成員是否存在集合之中。一些簡單的應用情境如：紀錄已經投票的名單、或文章屬於哪個分類群組，像這&#x985E;**「不重複」**&#x4E14;**「無順序之分」**&#x7684;資料特性，都可以透過集合的資料結構來儲存。

關於集合的一大特點，是不同集合之間可以直接透過Redis進&#x884C;**「交集」、「聯集」、「差集」**&#x7684;運算。另外，集合也提&#x4F9B;**「隨機抽樣」**&#x7684;指令，在類似「抽獎」情境下也可以考慮用集合來做存取，就不必再另外自建亂數。



