数据类型Set
原创2026/3/5大约 2 分钟

与List类似是一个列表功能,但Set是自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。
Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的时间复杂度都是O(1)。
- sadd
将一个或多个元素添加到集合key中,已经存在的元素将被忽略。
sadd k1 v1 v2 v2 v3 v4 v5 v6 #最终只有v1 v2 v3 v4 v5 v6- smembers
取出该集合的所有元素。
smembers k1- sismember
判断集合key中是否含有value元素,如有返回1,否则返回0。
sismember k1 v1- scard
返回该集合的元素个数。
scard k1- srem
删除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
srem k1 v1 v2- spop
随机删除集合中一个元素并返回该元素。
spop key- srandmember
随机取出集合中count个元素,但不会删除。
srandmember k1 2- smove
将value元素从sourcekey集合移动到destinationkey集合中。
smove k1 k2 v5 # 将元素v5从集合k1中移动到集合k2提示
如果 sourcekey集合不存在或不包含指定的 value元素,则 smove 命令不执行任何操作,仅返回 0 。
- sinter
返回两个集合的交集元素。
sinter key1 key2- sunion
返回两个集合的并集元素。
sunion k1 k2- sdiff
返回两个集合的差集元素(key1中的,不包含key2)
sdiff k1 k2使用场景
- 黑白名单
- 随机展示
- 好友
- 关注人
- 粉丝
- 感兴趣的人集合
至此,本章节的学习就到此结束了,如有疑惑,可对接技术客服进行相关咨询。