一、概述
- redis的set是string類型的無序集合
- 集合成員是唯一的,這就意味着集合中不能出現重復的數據。
- 集合中最大的成員數為2^32-1(4294967295,每個集合可存儲40多億個成員)
二、鍵的設置
- 命令名稱:sadd
- 語法:sadd key member [member……]
- 功能:
- 將一個或多個member元素加入到集合key當中,已經存在於集合中的member元素將被忽略。
- 假如key不存在,則創建一個只包含member元素做成員的集合。
- 當key不是集合類型時,返回一個錯誤。
- 返回值:
- 被添加到集合中的新元素的數量,不包括被忽略的元素
三、鍵的查詢
- 命令名稱:scard
- 語法:scard key
- 功能:
- 返回集合key的基數(集合中元素的數量)。
- 返回值:
- 集合的基數。
- 如果key不存在時,返回0
- 命令名稱:smembers
- 語法:smembers key
- 功能:
- 返回集合key的所有成員。
- 不存在的key被視為空集合
- 返回值:
- 集合中的所有成員
- 命令名稱:sismember
- 語法:sismember key member
- 功能:
- 判斷member元素是否集合key的成員
- 返回值:
- 如果member元素是集合的成員,返回1.
- 如果member元素不是集合的成員,或key不存在,返回0
- 命令名稱:srandmember
- 語法:srandmember key [count]
- 功能:
- 如果執行命令時,只提供了key參數,那么返回集合中的一個隨機元素。
- 返回值:
- 只提供key參數是,返回一個元素;如果集合為空,返回你了。
- 如果提供了count參數,那么返回一個數組;如果集合為空,返回空數組
- 命令名稱:sscan
- 語法:sscan key cursor [MATCH pattern] [COUNT count]
- 功能:
- 用於迭代集合中的元素。
- 返回值:
- 集合成員
四、鍵之間的關系
- 命令名稱:sdiff
- 語法:sdiff key [key……]
- 功能:
- 返回一個集合的全部成員,該集合是所有給定集合之間的差集。
- 不存在的key被視為空集。
- 返回值:
- 一個包含差集成員的列表,返回第一個key中的
- 命令名稱:sdiffstore
- 語法:SDIFFSTORE destination key [key ...]
- 功能:
- 這個命令的作用和sdiff類似,但它將結果保存到destination集合中,而不是簡單地返回結果集。
- 如果destination集合已經存在,則將其覆蓋。
- destination可以是key本身
- 返回值:
- 結果集中的元素數量
- 命令名稱:sinter
- 語法:sinter key [key ...]
- 功能:
- 返回一個集合的全部成員,該集合是所有給定集合的交集。
- 不存在的key被視為空集。
- 當給定集合當中有一個空集是,結果也為空集
- 返回值:
- 交集成員的列表
- 命令名稱:sinterstore
- 語法:sinterstore destination key [key ...]
- 功能:
- 這個命令的作用和sinterstore類似,但它將結果保存到destination集合中,而不是簡單地返回結果集。
- 如果destination集合已經存在,則將其覆蓋。
- destination可以是key本身
- 返回值:
- 結果集中的元素數量
- 命令名稱:sunion
- 語法:sunion key [key ...]
- 功能:
- 返回一個集合的全部成員,該集合是所有給定集合的並集。
- 不存在的key被視為空集
- 返回值:
- 並集成員的列表
- 命令名稱:sunionstore
- 語法:sunion destination key [key ...]
五、刪除
- 命令名稱:spop
- 語法:spop key
- 功能:
- 移除並返回集合中的一個隨機元素
- 返回值:
- 被移除的隨機元素。
- 當key不存在或key是空集時,返回nil
- 命令名稱:srem
- 語法:sunion key member [member ...]
- 功能:
- 移除集合key中的一個或多個member元素,不存在的member元素會被忽略。
- 當key不是集合類型,返回一個錯誤
- 返回值:
- 被成功移除的元素的數量,不包括被忽略的元素
- 命令名稱:smove
- 語法:smove source destination member
- 功能:
- 將member元素從source集合移動到destination集合。
- smove是原子性操作。
- 如果source集合不存在或不包含指定的member元素,則smove命令不執行任何操作,僅返回0。
- 當destination集合已經包含member元素時,smove命令只是簡單的將source集合中的member元素刪除
- 返回值:
- 如果member元素被成功刪除,返回1。
- 如果member元素不是source集合的成員,並且沒有任何操作對destination集合執行,那么返貨0。
- 當source或destination不是集合類型時,返回一個錯誤