Redis数据结构详解之Set(三)
序言
在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(三)的更多相关文章
- 5种Redis数据结构详解
本文主要和大家分享 5种Redis数据结构详解,希望文中的案例和代码,能帮助到大家. 转载链接:https://www.php.cn/php-weizijiaocheng-388126.html 2. ...
- Redis数据结构详解之List(二)
序言 思来想去感觉redis中的list没什么好写的,如果单写几个命令的操作过于乏味,所以本篇最后我会根据redis中list数据类型的特殊属性,同时对比成熟的消息队列产品rabbitmq,使用red ...
- redis数据结构详解之Hash(四)
序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引 ...
- Redis数据结构详解(一)
前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据记录.Redis还支持对这些数据类型做更多的服务端操作 ...
- Redis数据结构详解,五种数据结构分分钟掌握
redis数据类型分为:字符串类型.散列类型.列表类型.集合类型.有序集合类型.redis这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作.原子操作:最小的操作单位,不能 ...
- Redis数据结构详解之Zset(五)
序言 Zset跟Set之间可以有并集运算,因为他们存储的数据字符串集合,不能有一样的成员出现在一个zset中,但是为什么有了set还要有zset呢?zset叫做有序集合,而set是无序的,zset怎么 ...
- Redis数据结构详解(2)-redis中的字典dict
前提知识 字典,又被称为符号表(symbol table)或映射(map),其实简单地可以理解为键值对key-value. 比如Java的常见集合类HashMap,就是用来存储键值对的. 字典中的键( ...
- Redis数据结构详解(1)-redis中的字符串(SDS)
前提知识 我们先从百科上摘下Redis的解释: Redis是一个使用ANSI C编写的开源.支持网络.基于内存.分布式.可选持久性的键值对存储数据库. (不用过多在意ANSI,它只是一个标准,你可以理 ...
- redis 五种数据结构详解(string,list,set,zset,hash)
redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...
随机推荐
- async & await 的前世今生(Updated)
async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...
- BIOS中未启用虚拟化支持系列~~例如:因此无法安装Hyper-V
异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 一般都是启动一下CUP虚拟化就可以了 比如华硕的:
- 阿里云学生优惠Windows Server 2012 R2安装IIS,ftp等组件,绑定服务器域名,域名解析到服务器,域名备案,以及安装期间错误的解决方案
前言: 这几天终于还是按耐不住买了一个月阿里云的学生优惠.只要是学生,在学信网上注册过,并且支付宝实名认证,就可以用9块9的价格买阿里云的云服务ECS.确实是相当的优惠. 我买的是Windows S ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- springmvc+mybatis+spring 整合 bootstrap html5
A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技 ...
- AlloyTouch实战--60行代码搞定QQ看点资料卡
原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
- iOS 小知识点(持续更新)
1.如何通过代码设置Button title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#> ...
- Web开发安全之文件上传安全
很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...