Redis学习数据类型(四)之set列表

1.Redis数据类型之集合(Set)命令

Redis的数据类型集合(Set)是String类型的无序集合。集合无序且不存在重复的元素,每个元素都是唯一的。集合是通过哈希表来实现的,所以使用集合进行增加、删除、查询操作时的效率特别高,复杂度为(1)。一个集合所能存储的最大容量为2^32-1个元素。

1.1向集合中添加元素

1.SADD命令:添加多个元素到集合中

命令格式:

SADD key member [member]

SADD命令用于将一个或多个member元素添加到集合key中。如果这个集合key中已经存在这个member元素那么它将会被忽略。如果集合key不存在,就创建一个集合,这个集合中只包含这里设置的member元素。当key不是集合类型时,返回一个错误。

返回值:执行命令后,返回被添加到集合中的新元素的数量,不包含被忽略的元素。

2.SMOVE命令:移动集合元素到另一个集合中

命令格式:

SMOVE source destination member

SMOVE 命令用于将集合source中的member元素移动到集合destination中。SMOVE命令是原子性操作,要么执行成功,要么不执行。如果集合source不存在,或者集合source中不存在member元素,则SMOVE命令不执行任何操作,将返回0;如果集合source中包含member元素,那么SMOVE命令会将member元素从集合source移动到集合destination中。

当集合destination中已经包含member元素时,SMOVE命令只是简单的将集合source中的member元素删除,而不会移动。

返回值:当member元素成功地从集合source移动到集合destination中时,返回1;当集合source中没有member元素,或者集合source不存在,返回0,表示SMOVE命令不做任何事情。

3.SUNIONSTORE命令:保存多个集合元素到新集合中

命令格式:

SUNIONSTORE destination key [key...]

SUNIONSTORE命令用于获取一个或多个集合的key中的全部元素,并将这些元素保存到集合destination中,这个集合中的元素是给定的集合key元素的交集。该命令与SUNION命令类似。当只有一个集合key时,执行该命令后,产生的集合destination就是这个集合key本身。

返回值:该命令成功执行后,返回这个交集集合destination中的元素数量。

1.2获取集合元素

1.SISMEMBER命令:判断某个元素是否在集合中

命令格式

SISMEMBER destination key [key]

SISMEMBER 命令用于判断元素number是否在集合key中,换句话说,就是判断这个元素number是不是集合key的成员。

返回值:如果集合key中存在元素number,则返回1;如果集合key中不存在元素number;或者集合key不存在,就返回0;

2.SCARD命令:获取集合中元素的数量

命令格式:

SCARD key

SCARD命令用于获取集合key中元素的数量。

返回值:返回集合key中的元素个数。当集合key不存在时,返回0。

3.SMEMBERS命令:获取集合中的所有元素

命令格式:

SMEMBERS key

SMEMBERS命令用于获取集合key中的所有元素。如果这个集合key不存在,则会被看作空集合。

返回值:该命令成功执行后,返回这个集合中的所有元素。

4.SRANDMEMBER命令:随机获取集合中的一个元素

命令格式:

SRANDMEMBER key [count]

SRANDMEMBER 命令用于随机返回集合key中的一个元素,当且仅当只有参数key时。在后来的版本添加了参数count。参数count可以是一个正数,也可以是一个负数。当count为证书,且小于集合基数(集合元素个数最大值)时,执行该命令后返回一个包含count个元素的数组,数组中的元素各不相同。当count大于等于集合集合基数时,返回整个集合。当count为负数时,执行该命令后,返回一个元素可能重复多次的数组,这个数组的长度是count的绝对值。

该命令与spop命令的功能类似,命令spop在从集合中随机删除元素的同时返回这个元素;而SRANDMEMBER命令只是随机返回元素,并不会改动这个集合的内容。

返回值:如果集合为空,则返回nil;如果只设置了key参数,则将会随机返回一个元素,如果设置了count,则将会返回一个数组;如果集合为空,则将会返回一个空数组。

5.SUNION:获取多个集合中的所有元素

命令格式:

SUNION key [key...]

SUNION 命令用于获取一个或多个集合key中的全部元素,这个返回的集合是所有给定集合key的并集。如果集合key不存在,则会被看作空集。

返回值:SUNION命令成功执行后,返回并集元素列表。

1.3集合运算

1.SDIFF命令:获取多个集合元素的差集

命令格式:

SDIFF key [key...]

2.SDIFFSTORE命令:获取多个集合差集的元素个数

命令格式:

SDIFFSTORE destination key [key...]

3.SINTER命令:获取多个元素集合的交集

命令格式:

SINTER key [key...]

4.SINTERSTORE命令:获取多个集合交集的元素个数

SINTERSTORE destination key [key]

1.4删除集合元素

1.SPOP命令:删除集合中的元素

命令格式:

SPOP key [count]

SPOP命令用于随机删除集合key中的一个或多个元素

返回值: SPOP命令成功执行后,返回被删除的随机元素。如果集合key不存在,或者集合key是空集合,则返回nil。

2,SREM命令:删除集合中的多个元素

命令格式:

SREM key member [member]

SREM命令用于删除集合key中的一个或多个member元素。该命令在执行过程中会忽略不存在的member元素。如果key不是集合类型的,则返回一个错误。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qingqingyyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值