Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。

  Set无序集合
添加一个元素 >sadd myset2 one
向myset1集合添加一个元素“one”
返回:成功返回1,失败返回0
注: 1.集合中的元素值是唯一的(不允许重复,也没有重复)
   
查看某一集合所有元素 >smembers myset2
查看myset2集合中所有元素
返回:返回当前集合所有元素
随机返回集合中一个元素 >srandmember myset1
随机读取一个myset1集合中的元素
判断某集合中是否存在某个元素
(判断某元素是否存在于集合中)
>sismember myset1 four
判断myset1中是否存在“four”这个元素。即:判断“four”是否是myset1中的元素
返回:存在返回1,不存在返回0
获取集合中元素总个数 >scard myset1
返回集合中的元素总个数;
   

获取第一个集合与其后若干集合的差集

sdiff = set difference ['dɪfrəns]

>sdiff myset1
取myset1与一个空集合的差集(其实仍为自身,同smembers myset1效果)

>sdiff myset1 myset2
取myset1与myset2的差集

>sdiff myset1 myset2 myset3
取myset1与myset2、myset3的多个集合的差集

获取差集,并将结果存储到前面的集合中 >sdiffstore mySetDiff myset1 myset2
获取myset1与myset2的差集,并将结果存储到前面的mySetDiff中
返回:返回新集合mySetDiff的元素个数
   
获取第一个集合与其后若干集合的交集

sinter = set intersection[ˌɪntə'sekʃn] 

>sinter myset1
获取myset1与一个空集的交集(其实仍为自身,同smembers myset1效果)

>sinter myset1 myset2
1) "four"
2) "three"
3) "two"
获取myset1与myset2的交集

>sinter myset1 myset2 myset3
1) "three"
获取myset1与myset2、myset3的多个集合的交集

获取交集,并将结果存储到前面的集合中 >sinterstore mySetInter myset1 myset2
获取myset1与myset2的交集,并将结果存储到前面的mySetInter中
返回:返回新集合mySetDiff的元素个数
   
获取第一个集合与其后若干集合的并集 >sunion myset1
获取myset1与一个空集合的并集
(其实仍为自身,同smembers myset1效果)

>sunion myset1 myset2
获取myset1与myset2的并集

>sunion myset1 myset2 myset3
获取myset1与myset2、myset3的多个集合的并集

获取并集,并将结果存储到前面的集合中 >sunionstore mySetUnion myset1 myset2 myset3
获取myset1与myset2、myset3的并集,
并将结果存储到前面的mySetUnion中
返回:返回新集合mySetUnion的元素个数
   
移动元素:从前一集合向后一集合移动一个元素 >smove myset1 myset2 two
从myset1移动到myset2中一个值为“two”元素;
如果被移除的元素在myset1中不存在,返回0,否则返回1;
如果目标集合中已经存在“two”元素,则覆盖存储。
注:每次只能移动一个元素,成功返回1,失败返回0;
   
删除指定若干元素 >srem myset2 tom       删除一个元素tom
>srem myset2 jack mary 删除多个元素jack 和 mary

返回实际被删除的元素个数

随机弹出(删除)一个元素 >spop myset2
返回:返回被弹出的元素值
   

Redis的Set无序集合命令的更多相关文章

  1. redis对set(无序集合)的相关操作

    redis对set类型(无序集合)操作的相关命令以及如何在python使用这些命令 redis对set类型操作的命令: 命令 语法 概述 返回值 Redis Sadd 命令 sadd key memb ...

  2. 005-redis-命令-无序集合,有序集合

    Redis 无序集合命令 下表列出了 Redis 集合基本命令: 序号 命令及描述 1 SADD key member1 [member2] 向集合添加一个或多个成员 2 SCARD key 获取集合 ...

  3. Redis之无序集合类型命令

    Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ...

  4. python对redis的常用操作 下 (无序集合,有序集合)

    无序集合: 首先介绍增加,删除和获得所有元素的方法.我将会用第二部分来讨论集合的特殊操作: In [136]: x.sadd("challenge", 1,2,3,4,5,6,7, ...

  5. redis:set集合类型的操作(无序集合)

    1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...

  6. C#操作Redis Set 无序集合

    /// <summary> /// redis 无序集合 /// </summary> public static void Redis_Set() { RedisClient ...

  7. 四:redis的sets类型 - 相关操作(有序和无序集合)

    ================四十五种(有序和无序集合):sets种类(它是一个集)=============      简介:  set它代表的集合.加入是随意添加----->无序集合    ...

  8. Redis数据结构及相应的命令

    Redis可以存储键(key)与5种不同类型值(value)之间的映射,5中不同类型的值分别为字符串(string),列表(list),散列(hash),集合(set)和有序集合(sorted set ...

  9. Redis 常用数据结构及其控制命令整合

    Redis 键值支持5种基本结构,分别是字符串,列表,哈希,集合,有序集合.每一种数据结构都有对应的取值和设值命令,辅助命令,除此之外,还有一些全局命令,用来管理Redis存储的所有 键. 全局命令 ...

随机推荐

  1. [ASP.NET Core] 建置x86版本 (workaround)

    前言 本篇文章介绍如何建置ASP.NET Core项目的x86版本输出(workaround),为自己留个纪录也希望能帮助到有需要的开发人员. ASP.NET Core官网 步骤 首先到微软官网的「. ...

  2. 视觉SLAM中的深度估计问题

    一.研究背景 视觉SLAM需要获取世界坐标系中点的深度. 世界坐标系到像素坐标系的转换为(深度即Z): 深度的获取一共分两种方式: a)主动式 RGB-D相机按照原理又分为结构光测距.ToF相机 To ...

  3. Appium+python 自动发送邮件(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10056091.html) SMTP:简单传输协议,实在Internet上传输Email的事实标准. Python的s ...

  4. 转载-找圆算法((HoughCircles)总结与优化-霍夫变换

    原文链接: http://www.opencv.org.cn/forum.php?mod=viewthread&tid=34096   找圆算法((HoughCircles)总结与优化 Ope ...

  5. scrapy-redis+selenium+webdriver 部署到linux上

    背景:在使用selenium时,在本地使用windows,都会有一个图形界面,但是到了生产环境linux上没有了图形界面怎么部署呢? 解决方案: 1.安装图形化界面,不推荐,因为安装图形化界面会占用很 ...

  6. SAP(ABAP) ABAP内部外部数据转换常用function

    文本相关CONVERSION_EXIT_CUNIT_OUTPUT      将内部单位转为单位文本CONVERSION_EXIT_ISOLA_OUTPUT      根据语言代码取文本CONVERSI ...

  7. [Linux] Migrate plugins and setting for vim

    Hot to migrate plugins and setting for vim from one computer to another ? Just copy  ~/.vim and ~/.v ...

  8. “Hello World!”团队召开的第六次会议

    团队“Hello World!”团队召开的第六次会议. 博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.Todo List 六.会议照片 七.燃尽图 一.会议时间 2017年1 ...

  9. nginx配置,php安装

    yum -y install libxml2 libxml2-develyum -y install libxslt-devel yum -y install bzip2-devel yum -y i ...

  10. HDU 5636 Shortest Path

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 题解: 1.暴力枚举: #include<cmath> #include<c ...