sinter 、sunion 、sdiff

redis 支持 Set集合的数据存储,其中有三个比较特殊的方法:

sinter key [key …] 返回一个集合的全部成员,该集合是所有给定集合的交集。
sunion key [key …] 返回一个集合的全部成员,该集合是所有给定集合的并集。
sdiff key [key …] 返回所有给定 key 与第一个 key 的差集

sinter 代码示例

redis> SMEMBERS group_1
1) "LI LEI"
2) "TOM"
3) "JACK" redis> SMEMBERS group_2
1) "HAN MEIMEI"
2) "JACK" redis> SINTER group_1 group_2 # 取的是交集的数据
1) "JACK"

sunion 代码示例

redis> SMEMBERS songs
1) "Billie Jean" redis> SMEMBERS my_songs
1) "Believe Me" redis> SUNION songs my_songs # 取的是集合的并集数据据
1) "Billie Jean"
2) "Believe Me"

sdiff 代码示例

redis> SMEMBERS peter's_movies
1) "bet man"
2) "start war"
3) "2012" redis> SMEMBERS joe's_movies
1) "hi, lady"
2) "Fast Five"
3) "2012" redis> SDIFF peter's_movies joe's_movies # 取的是两个集合的差集的数据
1) "bet man"

sinterstore、sunionstore、sdiffstore

sinterstore destination key [key …] 将 交集 数据存储到某个对象中
sunionstore destination key [key …] 将 并集 数据存储到某个对象中
sdiffstore destination key [key …] 将 差集 数据存储到某个对象中

sinterstore 代码示例

1) "good bye joe"
2) "hello,peter" redis> SMEMBERS my_songs
1) "good bye joe"
2) "falling" redis> SINTERSTORE song_interset songs my_songs # 将交集的数据存储到 song_interset 对象中
(integer) 1 redis> SMEMBERS song_interset # 返回 song_interset 对象中的 所有数据
1) "good bye joe"

sunionstore 代码示例

redis> SMEMBERS NoSQL
1) "MongoDB"
2) "Redis" redis> SMEMBERS SQL
1) "sqlite"
2) "MySQL" redis> SUNIONSTORE db NoSQL SQL # 将并集的数据存储到 db 对象中
(integer) 4 redis> SMEMBERS db # 返回 db 对象中的 所有数据
1) "MySQL"
2) "sqlite"
3) "MongoDB"
4) "Redis"

sdiffstore 代码示例

redis> SMEMBERS joe's_movies
1) "hi, lady"
2) "Fast Five"
3) "2012" redis> SMEMBERS peter's_movies
1) "bet man"
2) "start war"
3) "2012" redis> SDIFFSTORE joe_diff_peter joe's_movies peter's_movies # 将差集的数据存储到 joe_diff_peter 对象中
(integer) 2 redis> SMEMBERS joe_diff_peter # 返回 joe_diff_peter 对象中的 所有数据
1) "hi, lady"
2) "Fast Five"

  

redis 交集、并集、差集的更多相关文章

  1. (java/javascript) list 交集 并集 差集 去重复并集

    java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ...

  2. Python 求两个文本文件以行为单位的交集 并集 差集

    Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...

  3. 如何求ArrayList集合的交集 并集 差集 去重复并集

    需要用到List接口中定义的几个方法: addAll(Collection<? extends E> c) :按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾 ...

  4. spark之交集并集差集拉链

    spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ...

  5. java 两个list 交集 并集 差集 去重复并集

    前提需要明白List是引用类型,引用类型采用引用传递. 我们经常会遇到一些需求求集合的交集.差集.并集.例如下面两个集合: List<String> list1 = new ArrayLi ...

  6. java list 交集 并集 差集 去重复并集

    package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public clas ...

  7. js Array 交集 并集 差集 去重

    最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那循环次数太多了,所以我这里采用对象object来 ...

  8. Oracle集合运算符 交集 并集 差集

     集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集  一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ...

  9. SQL求 交集 并集 差集

    故事是这样的….. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集… -- 计算并集 SELECT DISTINCT colB FROM t ...

  10. oracle交集,并集,差集

    引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ...

随机推荐

  1. wan口的ip是干什么用的

    wan口的ip是外网的ip,属于公网的ip.主要用于外网的识别,WAN口主要用于连接外部网络,如ADSL.DDN.以太网等各种接入线路:而LAN口用来连接家庭内部网络,主要与家庭网络中的交换机.集线器 ...

  2. postman使用当前时间戳

    //设置当前时间戳postman.setGlobalVariable(“time”,Math.round(new Date().getTime()));time = postman.getGlobal ...

  3. Flutter 移动端屏幕适配方案和制作

    flutter_screenutil插件 flutter 屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理的布局! 注意:此插件仍处于开发阶段,某些API可能尚未推出. 安装依赖: 安装之前请查 ...

  4. 使用FRP配置Windows远程控制

    一款很好用的内网穿透工具--FRP 前言 使用内网穿透工具--FRP,以及一台云服务器当做服务端,进行简单配置后即可远程访问 配置 FRP 服务端的前提条件是需要一台具有公网 IP 的设备,得益于 F ...

  5. 【DSP开发】6455EMIF

     外部设备连接接口包括外部存储器连接接口(EMIF).主机接口(HPI)等.外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM.SBSRAM.Flash.SRAM存储器等,外部存储器接口 ...

  6. NET中的规范标准注释-- XML注释标签讲解

    一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用. C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档. 这篇文章将展示如何使用这 ...

  7. 41.进程池--Pool

    进程池 方便创建,管理进程,单独进程的Process创建,需要手动开启,维护任务函数,以及释放回收 进程池不需要这么麻烦,进程提前创建好,未来在使用的时候,可以直接给与任务函数 某个进程池中的任务结束 ...

  8. luogu P3031 [USACO11NOV]高于中位数Above the Median (树状数组优化dp)

    链接:https://www.luogu.org/problemnew/show/P3031 题面: 题目描述 Farmer John has lined up his N (1 <= N &l ...

  9. Vue代码分割懒加载的实现方法

    什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多 ...

  10. [转帖]Linux日期和时间的那些事儿

    Linux日期和时间的那些事儿 http://embeddedlinux.org.cn/emb-linux/entry-level/201311/09-2672.html 自己还是稚嫩啊.. 除了年龄 ...