大数据|Redis五大数据类型之Set(五)

大数据|Redis五大数据类型之Set(五)

文章图片

大数据|Redis五大数据类型之Set(五)

上一篇文章介绍了redis中的List集合【Redis五大数据类型之List(四)】 , 这篇文章继续介绍redis中的Set集合 。
一、redis中Set数据结构redis中Set集合和List集合类似 , 只不过Set集合不会保存重复的数据元素 。 Set集合具有如下特点:

  • 单键多值 , 即:一个key对应多个不重复的value值
  • set集合会自动排除重复元素
  • 底层采用dict字典的数据结构 , 而dict字典是由value为null的Hash表数据结构实现的 , 添加 , 删除 , 查找的时间复杂度是O(1) 。
二、redis操作Set集合1、sadd命令:将一个或者多个value值添加到集合set中

# 已经存在的元素 , 再次插入 , 则会自动忽略 。
# 添加成功 , 返回添加的元素个数 。
sadd key名称 value1值 value2值 value3值 value4值...
2、smembers命令:获取该集合中所有值(查看所有集合元素)


# 返回所有集合元素
smembers key名称
3、sismember命令:判断set集合中 , key所有包含的value中 , 是否包含指定的value值


# 存在value值 , 则返回1 。
# 不存在value值 , 则返回0 。
sismember key名称 value值
4、scard命令:返回集合中元素个数


# 返回集合元素个数
scard key名称
5、srem命令:移除集合中 , 某个或多个元素


# 移除成功 , 返回移除的元素个数 。
# 如果有不存在的元素 , 移除时候 , 不会计算到移除成功的个数中 。
# 例如:移除2个元素 , 其中一个元素在set集合中不存在 , 则返回值是1 。
srem key名称 value1值 value2值...

6、spop命令:随机从set集合中 , 获取一个或多个值

# 返回弹出的元素 。
# 取出的值 , 会在set集合删除 。
spop key名称 [count个数

7、srandmember命令:随机从集合中 , 获取n个值


# 获取的值 , 在set集合中不会被删除 。
# n可以是任意数字
srandmember key名称 n个数

8、smove命令:把集合1中的一个value值 , 移到集合2中

# 移动的元素集合 , 被移动的元素会在原集合中删除 。
# 如果目标集合中存在该value值 , 则覆盖该值 。
# 移动成功 , 返回移动1 。
smove key1名称 key2名称 需要移动的value值
9、sinter命令:返回集合1和集合2中的交集元素(共有元素)


# 返回两个集合的共有元素集合
sinter key1名称 key2名称
10、sunion命令:返回集合1和集合2中的并集元素(全部元素)


# 返回集合1和集合2中所有不重复元素 。
sunion key1名称 key2名称
11、sdiff命令:返回集合1和集合2中的差集元素(差集:set1集合中含有的元素 , 并且set2集合中不含有的元素)


# key1集合中含有的元素 , 并且key2集合中不含有的元素
sdiff key1名称 key2名称

以上就是redis中Set集合相关操作命令 。