#### 集合
* * * * *
[TOC]
###### SADD key member [member ...]
起始版本:1.0.0
時間復雜度:O(N) where N is the number of members to be added.
添加一個或多個指定的member元素到集合的 key中.指定的一個或者多個元素member 如果已經在集合key中存在則忽略.如果集合key 不存在,則新建集合key,并添加member元素到集合key中.
如果key 的類型不是集合則返回錯誤.
返回值
integer-reply:返回新成功添加到集合里元素的數量,不包括已經存在于集合中的元素.
歷史
= 2.4: 接受多個member 參數. Redis 2.4 以前的版本每次只能添加一個member元素.
例子
~~~
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "World"
2) "Hello"
~~~
###### SCARD key
起始版本:1.0.0
時間復雜度:O(1)
返回集合存儲的key的基數 (集合元素的數量).
返回值
integer-reply: 集合的基數(元素的數量),如果key不存在,則返回 0.
舉例
~~~
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2
~~~
###### SDIFF key [key ...]
起始版本:1.0.0
時間復雜度:O(N) where N is the total number of elements in all given sets.
返回的集合元素是第一個key的集合與后面所有key的集合的差集
返回一個集合與給定集合的差集的元素.
舉例:
~~~
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SDIFF key1 key2 key3 = {b,d}
~~~
不存在的key認為是空集.
返回值
array-reply:結果集的元素.
~~~
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"
~~~
###### SDIFFSTORE destination key [key ...]
起始版本:1.0.0
時間復雜度:O(N) where N is the total number of elements in all given sets.
該命令類似于 SDIFF, 不同之處在于該命令不返回結果集,而是將結果存放在destination集合中.
如果destination已經存在, 則將其覆蓋重寫.
返回值
integer-reply: 結果集元素的個數.
例子
~~~
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFFSTORE key key1 key2
(integer) 2
redis> SMEMBERS key
1) "b"
2) "a"
~~~
###### SINTER key [key ...]
起始版本:1.0.0
時間復雜度:O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.
返回指定所有的集合的成員的交集.
例如:
~~~
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SINTER key1 key2 key3 = {c}
~~~
如果key不存在則被認為是一個空的集合,當給定的集合為空的時候,結果也為空.(一個集合為空,結果一直為空).
返回值
array-reply: 結果集成員的列表.
例子
~~~
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"
~~~
###### SINTERSTORE destination key [key ...]
起始版本:1.0.0
時間復雜度:O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.
這個命令與SINTER命令類似, 但是它并不是直接返回結果集,而是將結果保存在 destination集合中.
如果destination 集合存在, 則會被重寫.
返回值
integer-reply: 結果集中成員的個數.
例子
~~~
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTERSTORE key key1 key2
(integer) 1
redis> SMEMBERS key
1) "c"
~~~
###### SISMEMBER key member
起始版本:1.0.0
時間復雜度:O(1)
返回成員 member 是否是存儲的集合 key的成員.
返回值
integer-reply,詳細說明:
如果member元素是集合key的成員,則返回1
如果member元素不是key的成員,或者集合key不存在,則返回0
##舉例
~~~
redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0
~~~
###### SMEMBERS key
起始版本:1.0.0
時間復雜度:O(N) where N is the set cardinality.
返回key集合所有的元素.
該命令的作用與使用一個參數的SINTER 命令作用相同.
返回值
array-reply:集合中的所有元素.
舉例
~~~
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "World"
2) "Hello"
~~~
###### SUNION key [key ...]
起始版本:1.0.0
時間復雜度:O(N) where N is the total number of elements in all given sets.
返回給定的多個集合的并集中的所有成員.
例如:
~~~
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SUNION key1 key2 key3 = {a,b,c,d,e}
~~~
不存在的key可以認為是空的集合.
返回值
array-reply:并集的成員列表
舉例
~~~
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNION key1 key2
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
~~~
- 目錄
- 安裝擴展
- 在 Windows 上安裝 PHP 擴展
- 測試Redis擴展函數
- 教程
- 簡介
- Redis 安裝
- Redis 配置
- 運行
- 測試
- 書籍
- 《Redis開發與運維》
- 《Redis入門指南》
- 《Redis實戰》
- 《當 Redis 遇上 ThinkPHP5》
- 參考站點
- 下載
- 命令參考
- 管理工具
- 視頻
- 云數據庫 Redis 版使用教程
- Redis 深入之道
- Redis高可用教程
- Redis入門
- NoSQL概述
- Redis概述
- Redis安裝
- Jedis入門
- PHP命令
- PHP中利用Redis管道加快執行
- Hash操作
- Set操作
- Gearman
- MySQL - Redis配合使用方案
- 應用場景
- 緩存應用
- Redis實現簡單的條件查詢功能
- 獲取網站中點擊量最高的前n篇文章
- 顯示最新的項目列表
- 排行榜相關
- 設計技巧
- SortedSets
- List列表
- 消息隊列
- 最新文章
- Set集合
- 共同好友
- 獨立 IP
- Linux教程
- 常用命令
- 哈希命令
- 字符串
- 集合
- 有序集合
- Redis 有序集合命令
- 有序集合命令(中)
- 發布訂閱
- 用例
- 列表
- Lindex
- Ltrim
- Rpush
- Lset
- Llen
- Lpush
- 信息
- info memory
- 安裝
- 數據類型
- Redis管道(pipeline)
- Memory Command
- 阿里云Redis
- 架構
- 4.0版本
- Redis 4.0 新功能介紹
- Redis Desktop Manager
- 創建hash列表數據
- Lua: 給 Redis 用戶的入門指導
- Lua入門
- 樂觀鎖介紹
- 悲觀鎖介紹
- 臟數據
- Redis核心概念
- Redis事務
- Lua
- 在Redis中使用lua腳本
- php-redis
- mysql緩存服務器
- redis setnx 實現分布式鎖和單機鎖
- 為什么分布式一定要有Redis?