集合中的元素是无序的,集合中的元素是不能重复的,我们把集合中的元素叫做memeber。
在集合添加元素
SADD key member1 member2 ...
向 Set 集合中添加一个或多个元素
集合不存在则自动创建
重复元素会自动去重,只保留一份
返回值:成功添加的新元素个数
查看集合所有元素
SMEMBERS key
返回集合中所有的元素
集合无序,输出顺序不固定
key 不存在返回空集合
集合中的元素个数
sql
scard key1
判断集合中的某元素是否存在
SISMEMBER key member
存在返回1,不存在返回0
随机删除集合中的一个元素
SPOP key [count] //随机删除集合中的某个或者某几个元素,count表示删除数量,不写就是删除一个。返回被删除的元素
删除指定的元素
sql
srem key value1 value2... ...//删除集合中指定的某几个元素
随机从集合获取一个元素
sql
SRANDMEMBER key [count] //随机筛选出count个元素(不写的话就是随机筛选一个),返回被选中的元素
把集合元素移动到另一个集合
sql
SMOVE key1 key2 value //把集合1中的value移动到集合2,其中集合1的value会被删除
如果集合2已经有value,那么不会重复添加,但是集合1中的value会被删除
如果集合1没有value就报错
交集、并集、差集
sql
sinter key1 key2... ... //求若干个集合的交集
sinterstore deskey key1 key2 ... ...//求出若干集合的交集后把交集插入到deskey所指向的集合
sunion key1 key2... ... //求若干个集合的并集
sunionstore deskey key1 key2 ... ...//求出若干集合的并集后把并集插入到deskey所指向的集合
sdiff key1 key2... ... //求若干个集合的差集
sdiffstore deskey key1 key2 ... ...//求出若干集合的差集后把差集插入到deskey所指向的集合
集合应用场景
- **用户标签,比如使用推荐算法给用户制造信息茧房就需要收集每个用户的一些特征,也就是标签。**用户标签和视频标签求交集就能给用户推荐视频。
- 使用set统计UV(user view)。利用set给用户去重,这样set中的用户就是实际用户数