5.4 Set資料結構
5.4.1 Set集合
-
Redis的Set是String類型的無序集合。
集合成員是唯一的,這就意味着集合中不能出現重複的資料。
- Redis中集合是通過哈希表實作的,是以添加、删除、查找的速度極快。
- 集合中最大的成員數為232-1(4294967295,每個集合可存儲40多億個成員)。
5.4.2 Set指令
指令 | 示例 | 使用頻率 | 說明 |
---|---|---|---|
sadd srem | sadd key element srem key element | ***** | 添加移除集合中的元素 |
scard smembers | scard user:1:follow smembers user:1:follow | *** | 計算集合數量 擷取所有集合元素(不推薦) |
srandmember spop | srandmember user:1:follow 3 spop user:1:follow | *** | 随機挑選三個元素 随機彈出元素 |
sdiff | sdiff set1 set2 | ** | 差集(兩個集合間都沒有的元素) |
sinter | sinter set1 set2 | ** | 交集(兩個集合都有的元素) |
sunion | sunion set1 set2 | ** | 并集(将兩個結合所有元素,去掉重複的打包一起的元素) |
5.4.3 Set指令代碼示例
增加一個元素:
sadd user:1:follow it
傳回:
(integer)1
smembers user:1:follow
傳回:
"it"
增加一些相應的内容:
sadd user:1:follow music
傳回:
"music"
當增加重複元素的時候:
sadd user:1:follow music
傳回:
(integer)0