Redis数据类型 Set集合

2023-04-08

Set简介

Redis Set对外提供的功能与list类似是一个列表的功能,特殊之处在于Set是可以自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择。Set是String类型的无序集合,他底层是一个value为null的hash表,所以添加,删除,查找的复杂度都为O(1).

常用命令

#将一个或多个member元素加入到集合key中,已经存在的member元素将被忽略
sadd <key><value1><value2>......
#取出该集合的所有值
smembers <key>
#判断集合<key>是否含有该<value>值,有1,没有0
sismember <key><value>
#返回该集合的元素个数
scard<key>
#删除集合中的某个元素
srem <key><value1><vqlue2>
#随机从该集合中吐出一个值
spop <key>
#随机从该集合中取出n个值,不会从集合中删除
srandmember <key><n>
#把集合中一个值从一个集合移动到另一个集合
smove <source><destination>value
#返回两个集合的交集元素
sinter <key1><key2>
#返回两个集合的并集元素
sunion <key1><key2>
#返回两个集合的差集元素(key1中的,不包含key2中的)
sdiff <key1><key2>

## Set底层数据结构
Set的数据结构是dict字典,字典是用哈希表实现的。

评论