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