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. JS 判断checkbox 是否选中

    <input type="checkbox" id="IsEnable" /> 在调试的时候,会出现,一直未true的状态,不管是选中还是未选中 解 ...

  2. ffmpeg 踩坑实录 近期使用总结(三)

    一.背景介绍 将ffmpeg运用到项目上已经有一段时间了,趁现在有空赶紧记下来. 二.技术点总结    2.1 实现方式 项目里面主要运用的形式是,在java端,调用操作系统的方法,并执行切片命令. ...

  3. Arduino语言

    Arduino语言 Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不 ...

  4. CF刷题-Codeforces Round #481-D. Almost Arithmetic Progression

    题目链接:https://codeforces.com/contest/978/problem/D 题解: 题目的大意就是:这组序列能否组成等差数列?一旦构成等差数列,等差数列的公差必定确定,而且,对 ...

  5. Nginx内容缓存

    本节介绍如何启用和配置从代理服务器接收的响应的缓存.主要涉及以下内容 - 缓存介绍 启用响应缓存 涉及缓存的NGINX进程 指定要缓存的请求 限制或绕过缓存 从缓存中清除内容 配置缓存清除 发送清除命 ...

  6. 美国警察iPhone数据线挡住歹徒子弹获救

    泡泡网手机频道11月1日 现在手机的功能越来越丰富,不仅可以接打电话.收发短信.玩游戏聊天,关键时刻还能救命.前天HTC手机再次忠心护主,让许多同学对HTC赞赏有加.而现在又有人捡了一条命,不过这次救 ...

  7. python request 获取cookies value值的方法

    import requests res = requests.get(url) cookies = requests.utils.dict_from_cookiejar(res.cookies) pr ...

  8. 常用的os操作方法

    os.sep可以取代操作系统特定的路径分隔符.windows下为 “”os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix' ...

  9. Controller控制器

    控制器概述 上接应用(北向),下接设备(南向),左右扩展(东西接口). 谁掌控了控制器,或者制定了标准,就掌握了SDN. 南向功能:通过Openflow等南向接口技术,对网络设备进行管控,例如拓扑发现 ...

  10. 【二分图匹配】Plug It In!

    http://codeforces.com/gym/101873 F 先对原图跑一遍匈牙利得到原始最大匹配,再遍历每个出度>1的点,考虑若新加入点,能否找到增广路,若可行则答案对应增加 代码: ...