四、Redis 基本数据类型:set

redis中set集合和List集合类似,只不过Set集合不会保存重复的数据元素。Set集合具有如下特点:
单键多值,即:一个key对应多个不重复的value值
set集合会自动排除重复元素
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

 

1、sadd命令:将一个或者多个value值添加到集合set中

# 已经存在的元素,再次插入,则会自动忽略。
# 添加成功,返回添加的元素个数。
>sadd key member [member ...]

 

2、smembers命令:获取该集合中所有元素

>smembers key

 

3、sismember命令:判断给定key的集合中,是否包含指定的value值

# 存在value值,则返回1。
# 不存在value值,则返回0。
>sismember key member

4、scard命令:返回给定key的集合中元素个数

>scard key

5、srem命令:移除集合中,某个或多个元素

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

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

# 返回弹出的元素。
# 取出的值,会在set集合删除。
>spop key [count]

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

# 获取的值,在set集合中不会被删除。
# count可以是任意数字
>srandmember key [count]

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

# 移动的元素集合,被移动的元素会在原集合中删除。
# 如果目标集合中存在该value值,则覆盖该值。
# 移动成功,返回移动1。
>smove source destination member

9、sinter命令:返回集合的交集

# 返回两个或多个集合的共有元素集合
>sinter key [key ...]

10、sunion命令:返回集合的并集元素(全部元素)

# 返回两个或多个集合的不重复元素。
>sunion key [key ...]

11、sdiff命令:返回集合1和其它集合的差集元素

# set1-set2-set3...
>sdiff key [key ...]

 

posted @ 2022-07-05 11:05  RyderWang  阅读(262)  评论(0编辑  收藏  举报