007_Redis的Set数据类型
1. Set集合是String類型的無序集合。集合中的成員是唯一的, 這就意味著集合中不能出現重復的數據, 根據集合內成員的唯一性, 第二次插入的相同成員將被忽略。Set是通過哈希表實現的, 所以添加、刪除、查找的復雜度都是O(1)。集合中最大的成員數為(4294967295, 每個集合可存儲40多億個成員)。
2. 向集合添加一個或多個成員
2.1. 語法: sadd key member1 [member2]。
2.2. sadd命令將一個或多個成員加入到集合中, 已經存在于集合的成員將被忽略。假如集合key不存在, 則創建一個包含所有成員的集合。當給定key不是集合類型時, 返回一個錯誤。
2.3. 返回被添加到集合中的新成員的數量, 不包括被忽略的成員。
2.4. 實例
3. 返回集合中的所有成員
3.1. 語法: smembers key。
3.2. smembers命令返回集合中的所有成員。不存在的給定key集合被視為空集合。
3.3. 返回集合中的所有成員。
3.4. 實例
4. 獲取集合的成員數
4.1. 語法: scard key。
4.2. scard命令返回集合中的成員數量。
4.3. 返回集合的成員數量。當集合key不存在時, 返回0。
4.4. 實例
5. 判斷成員是否是集合的成員
5.1. 語法: sismember key member。
5.2. sismember命令判斷成員是否是集合的成員。
5.3. 如果成員是集合的成員, 返回1。如果成員不是集合的成員或key不存在, 返回0。
5.4. 實例
6. 返回第一個集合與其他集合之間的差異
6.1. 語法: sdiff key1 [key2]。
6.2. sdiff命令返回第一個集合與其他集合之間的差異, 也可以認為說第一個集合中獨有的成員。不存在的集合key將視為空集。差集的結果來自前面的first_key, 而不是后面的other_key1, 也不是整個first_key other_key1..other_keyn的差集。
6.3. 返回包含差集的成員列表。
6.4. 實例
7. 將第一個集合與其他集合之間的差異存儲在destination集合中
7.1. 語法: sdiffstore destination key1 [key2]。
7.2. sdiffstore命令將第一個集合與其他集合之間的差異存儲在destination集合中。如果指定的destination這個集合已存在, 則清空它的成員, 添加新成員。
7.3. 返回儲存差集的集合的成員數量。
7.4. 實例
8. 返回所有給定集合的交集
8.1. 語法: sinter key1 [key2]。
8.2. sinter命令返回所有給定集合的交集。不存在的集合key被視為空集。當給定集合當中有一個空集時, 結果也為空集(根據集合運算定律)。
8.3. 返回包含交集的成員列表。
8.4. 實例
9. 將所有給定集合的交集存儲在destination集合中
9.1. 語法: sinterstore destination key1 [key2]。
9.2. sinterstore命令將所有給定集合的交集存儲在指定的集合中。如果指定的集合已經存在, 則清空它的成員, 添加新成員。
9.3. 返回存儲交集的集合的成員數量。
9.4. 實例
10. 返回所有給定集合的并集
10.1. 語法: sunion key1 [key2]。
10.2. sunion命令返回所有給定集合的并集。不存在的集合key被視為空集。
10.3. 返回包含并集的成員列表。
10.4. 實例
11. 將所有給定集合的并集存儲在destination集合中
11.1. 語法: sunionstore destination key1 [key2]。
11.2. sunionstore命令將所有給定集合的并集存儲在指定的集合destination中。如果 destination已經存在,則清空它的成員, 添加新成員。
11.3. 返回存儲并集的集合的成員數量。
11.4. 實例
12. 移除集合中一個或多個成員
12.1. 語法: srem key member1 [member2]。
12.2. srem命令用于移除集合中的一個或多個成員, 不存在的成員會被忽略。當key不是集合類型, 返回一個錯誤。
12.3. 返回被成功移除的成員的數量, 不包括被忽略的成員。
12.4. 實例
13. 將成員從source集合移動到destination集合中
13.1. 語法: smove source destination member。
13.2. smove命令將指定成員member從source集合移動到destination集合中。如果source集合不存在或不包含指定的member成員, 則smove命令不執行任何操作, 僅返回0。否則, member成員從source集合中被移除, 并添加到destination集合中, 返回1。當destination集合已經包含member成員時, smove命令只是簡單地將source集合中的member成員刪除, 此時也返回1。當source或destination不是集合類型時, 返回一個錯誤。
13.3. 如果成員被成功移除, 返回1。如果成員不是source集合的成員, 那么返回0。
13.4. 實例
總結
以上是生活随笔為你收集整理的007_Redis的Set数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 019_Jedis的List数据类型
- 下一篇: 008_Redis的ZSet数据类型