JAVAWEB开发之redis学习(四)——Set集合相关的操作命令

本文介绍了Redis中的Set集合,它是一个无序且不允许重复元素的集合。Set提供了高效的添加、删除和成员存在性检查操作,时间复杂度为O(1)。此外,Set还支持在服务器端进行并集、交集和差集的计算,这大大提高了效率并减少了网络IO。文章详细列举了与Set相关的常用命令,包括SADD、SCARD、SISMEMBER、SMEMBERS等,并解释了它们的功能和时间复杂度。
摘要由CSDN通过智能技术生成

一、概述

在redis中,我们可以将Set类型看做没有排序的字符串集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间完成此操作。Set可包含最大数据量是4294967295。和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的Set容器是完全相同的。换句话说,如果多次添加相同的元素,Set中仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还有一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计算操作,如unions、intersections和differences 即并集、交集和差集。由于这些操作均在服务器端完成,因此效率极高,因此也节省了大量的网络IO开销。

二、相关命令列表

命令原型  时间复杂度+命令描述   返回值

  • SADD  key member  [member  ...]    O(N)   时间复杂度中N表示操作的成员数量。如果在插入的过程中,参数中有的成员在Set中已经存在,该成员将被忽略,而其他成员仍然会被正常插入。如果执行命令之前,该Set不存在,该命令将会创建一个新的Set,此后再将参数中的成员陆续插入。如果该key的Value不是Set类型,该命令将会返回相关的错误信息。返回值:本次操作实际插入的成员数量。
  • SCARD   key    O(1)   获取Set中成员数量。返回Set中成员数量,如果该key不存在,返回0.
  • SISMEMBER    key  member     O(1)   判断参数中指定成员是否已经存在于Key相关联的Set集合中。返回值:1表示已经存在,0表示不存在。
  • SMEMBERS  key    O(N)   时间复杂度N表示Set集合中已经存在的成员数量。用于获取Key关联的Set集合中的所有成员。返回值:Set集合中的所有成员。
  • SPOP   key   O(1)  随机的移除并返回Set中的某一成员。由于Set中元素的布局不受外部控制,因此无法像List那样确定哪个元素位于Set的头部或尾部。返回移除的成员,如果该key并不存在返回nil。
  • SREM   key   member  [member  ...]  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值