序言

在Redis中,Set和list都是字符串序列,非常相似,不同之处在于Set是用哈希表来保持字符串的唯一性,没有先后顺序,不像list一样,可以在首尾增删数据。但是set也有自己的相应处理命令来完成对自己的操作。下面我们来看下Set的命令怎么使用。

操作单个set的命令

redis中set列表的新增命令Sadd,key值相同下的value值不能重复,返回插入的数据个数,key后面可跟多个value值

127.0.0.1:6379>sadd mySet 1   ---添加key为mySet的set数据值为1,

127.0.0.1:6379>sadd mySet 2 4 5  ---添加key为mySet的set数据值为2,

redis中查看set数据集合的命令:smembers,可以获取全部的元素,当set成员比较多时考虑其性能啊

127.0.0.1:6379>smembers  mySet     ---获取key为mySet的说有set数据值集合

redis中set判断某个key的value中是否存在某个值的命令:sismember ,如果存在返回1,不存在返回0

127.0.0.1:6379>sismember mySet 3  ---返回值为0,因为myset的set成员中只有1,2没有3

127.0.0.1:6379>sismember mySet 2   ---返回值为1,因为myset的Set成员中存在2.

redis中set的删除数据命令srem,返回删除个数,key后面可跟多个value值

127.0.0.1:6379>srem mySet 1   ---删除key为mySet,value为1的数据项。

127.0.0.1:6379>srem mySet 2 4     ---删除key为mySet,value为2和4的2个数据项。

redis中查看set数据个数的命令scard,如果不存在返回0

127.0.0.1:6379>sadd mySet 1 2 3 4 5

127.0.0.1:6379>scrad mySet   ---查看mySet中存在多少个数据项,返回结果为5

redis中set随机查看元素命令srandmember

127.0.0.1:6379>srandmember mySet   ---输出key为mySet的数据项中的随机一个value,

redis中set随机删除一个元素的命令spop,并返回输出删除的数据

127.0.0.1:6379>spop mySet    ----随机从key为mySet的数据集合中删除一条数据,并返回输出删除的数据

127.0.0.1:6379>scard mySet    ---key为mySet的数据集合中的数据个数为4

操作多个set的命令

set除了对一个set中的元素进行增删改查外,还可以对多个set进行操作,比如将一个set的元素移到另外一个set中,计算多个set的并集,交集,差集等操作。

redis中set将一个set中的元素移动到另外一个set中的命令smove

127.0.0.1:6379>sadd mySet 1 2 3    ----向mySet中添加3条数据 1 2 3

27.0.0.1:6379>sadd youSet 3 4 5     ----向youSet中添加3条数据 3 4 5

127.0.0.1:6379>smove youSet mySet 4  ---将youSet中的数据4移除的同时将数据4添加到mySet中

127.0.0.1:6379>smembers mySet   ---结果为:1 2 3 4

127.0.0.1:6379>smembers youSet   ---结果为 3 5

redis中set求交集命令sinter

127.0.0.1:6379>sinter mySet youSet   ---输出结果为mySet和youSet的交集,输出结果为:3

redis中set求并集的命令sunion

127.0.0.1:6379>sunion mySet youSet    ---输出结果为mySet与youSet的并集,输出结果为:1 2 3 4 5

redis中set求差集的命令sdiff

127.0.0.1:6379>sdiff mySet youSet     ---输出结果为mySet中youSet不存在的数据,输出结果为:1 2 4

127.0.0.1:6379>sdiff youSet mySet   ---输出结果为youSet中mySet不存在的数据,输出结果为:5

小结

如果你在看到本文后有什么疑问,请加入博客左上角群,一起交流学习。

我的redis系列博文:双击地址

Redis数据结构详解之Set(三)的更多相关文章

  1. 5种Redis数据结构详解

    本文主要和大家分享 5种Redis数据结构详解,希望文中的案例和代码,能帮助到大家. 转载链接:https://www.php.cn/php-weizijiaocheng-388126.html 2. ...

  2. Redis数据结构详解之List(二)

    序言 思来想去感觉redis中的list没什么好写的,如果单写几个命令的操作过于乏味,所以本篇最后我会根据redis中list数据类型的特殊属性,同时对比成熟的消息队列产品rabbitmq,使用red ...

  3. redis数据结构详解之Hash(四)

    序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引 ...

  4. Redis数据结构详解(一)

    前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据记录.Redis还支持对这些数据类型做更多的服务端操作 ...

  5. Redis数据结构详解,五种数据结构分分钟掌握

    redis数据类型分为:字符串类型.散列类型.列表类型.集合类型.有序集合类型.redis这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作.原子操作:最小的操作单位,不能 ...

  6. Redis数据结构详解之Zset(五)

    序言 Zset跟Set之间可以有并集运算,因为他们存储的数据字符串集合,不能有一样的成员出现在一个zset中,但是为什么有了set还要有zset呢?zset叫做有序集合,而set是无序的,zset怎么 ...

  7. Redis数据结构详解(2)-redis中的字典dict

    前提知识 字典,又被称为符号表(symbol table)或映射(map),其实简单地可以理解为键值对key-value. 比如Java的常见集合类HashMap,就是用来存储键值对的. 字典中的键( ...

  8. Redis数据结构详解(1)-redis中的字符串(SDS)

    前提知识 我们先从百科上摘下Redis的解释: Redis是一个使用ANSI C编写的开源.支持网络.基于内存.分布式.可选持久性的键值对存储数据库. (不用过多在意ANSI,它只是一个标准,你可以理 ...

  9. redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

随机推荐

  1. CSS3 border-radius边框圆角

    在CSS3中提供了对边框进行圆角设定的支持,可对边框1~4个角进行圆角样式设置. 目录 1. 介绍 2. value值的格式和类型 3. border-radius 1~4个参数说明 4. 在线示例 ...

  2. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  3. TODO:GitHub创建组织的步骤

    TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...

  4. Convert BSpline Curve to Arc Spline in OpenCASCADE

    Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...

  5. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  6. git克隆项目到本地&&全局安装依赖项目&&安装依赖包&&启动服务

     一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目  3.安装依赖包(进入到命令行) # 安装依赖包 $ ...

  7. peer not authenticated的终极解决方案

    一.前述 使用httpclient发起https请求时,可能会遇到如下异常: javax.net.ssl.SSLPeerUnverifiedException: peer not authentica ...

  8. 利用注册表在右键添加VS15的快捷方式打开文件夹

    1.简介 最近安装VS15 Preview 5,本版本可以打开"文件夹" 是否可以向Visual Studio Code一样在文件夹或文件右键菜单添加"Open with ...

  9. MFC单文档程序添加HTML帮助支持

    1.在App类 构造函数中添加 EnableHtmlHelp(); 2.在Frame类中,添加消息影射: ON_COMMAND(ID_HELP_FINDER, CFrameWnd::OnHelpFin ...

  10. 集合(set)-Python3

    set 的 remove() 和 discard()  方法介绍. 函数/方法名   等价操作符 说明 所有集合类型 len(s)   集合基数:集合s中元素个数 set([obj])   可变集合工 ...