序言

在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. 移动web基本知识

    1.pixel像素基础 1.px:csspixel 逻辑像素,浏览器所使用的抽象单位 2.dp,pt:设备无关像素 3.devicePixelPatio 设备像素缩放比例 2.viewport 1. ...

  2. .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator

    去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的问题,那种方法在当时的环境是非常方便的,因为不需要生成实体类,结构很容易解析.但随着业务 ...

  3. Android业务组件化之URL Scheme使用

    前言: 最近公司业务发展迅速,单一的项目工程不再适合公司发展需要,所以开始推进公司APP业务组件化,很荣幸自己能够牵头做这件事,经过研究实现组件化的通信方案通过URL Scheme,所以想着现在还是在 ...

  4. javascript匹配各种括号书写是否正确

    今天在codewars上做了一道题,如下 看上去就是验证三种括号各种嵌套是否正确书写,本来一头雾水,一种括号很容易判断, 但是三种怎么判断! 本人只是个前端菜鸟,,不会什么高深的正则之类的. 于是,在 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. Android -- 真正的 高仿微信 打开网页的进度条效果

    (本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...

  7. MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决

    一.简介 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发.发布并支持的.有以下特点: MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQ ...

  8. H3 BPM让天下没有难用的流程之产品概述

    一.产品简介 BPM(Business Process Management),是指根据业务环境的变化,推进人与人之间.人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具. H3 ...

  9. SpringMVC视图解析器

    SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视 图解析器.当我们对SpringMVC控制的资源发起 ...

  10. Web前端温故知新-CSS基础

    一.CSS定义与编写CSS 1.1 CSS的定义 全名:Cascading Style Sheets -> 层叠样式表 定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体. ...