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. oracle OPEN FOR [USING] 语句

    目的:        和ref cursor配合使用, 可以将游标变量分配给不同的SQL (而不是在declare中把游标给定死), 增加处理游标的灵活性语法: declare type type_c ...

  2. linux下怎么用ssh连接另一台linux服务器

    linux系统大家都知道是服务器版本一般都没有图像界面,通过字符界面操作.用ssh远程方式远程,如果要从一台linux远程到另外一台系统应该怎么操作呢本经验咗嚛以cenots7为例演示   方法/步骤 ...

  3. python 获取昨天的日期

    from datetime import timedelta, datetime yesterday = datetime.today()+timedelta(-1) yesterday_format ...

  4. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 解决方案:$sql = ...

  5. PLSQL 经常自动断开失去连接的解决过程

    转: PLSQL 经常自动断开失去连接的解决过程 问题背景: 情况是这样的,很多开发同事的PLSQL上班时间开着8个小时,有时候他们出去抽烟后或者中午吃完饭,回来在PLSQL上面执行就报错无响应,然后 ...

  6. Nginx+Keepalived双主架构实现

    Keepalived+Nginx实现高可用Web负载均衡 Master 192.168.0.69 nginx.keepalived Centos7.4backup 192.168.0.70 nginx ...

  7. 如何设置payjs的微信jsapi支付目录

    首先你得是 payjs 的有效开通用户.不清楚 payjs 是干什么的可以自行百度. 设置方法非常简单,在后台菜单-系统设置-JSAPI目录设置,在右侧填写支付目录即可. 需要注意的是:支付目录需要配 ...

  8. hi cnblogs

    hi cnblogs 前言: 作为一个工作好些年的it男,还没正经写过技术博客,真是太羞愧了... 正文: 先扯点儿虚的,无论从事什么行业,最重要的都是自我认知和自我定位.至今,我也有工作了小五年了, ...

  9. 义隆单片机学习笔记之(一) 硬件框架&资源下载

    参考网址: 点击链接或右键链接地址 (台湾义隆官网)http://www.emc.com.tw/chs/tech_8bit.asp (EM78P153K官方资料)http://www.emc.com. ...

  10. OpenCV.3.4.6.附加依赖项

    ZC:VS2015 "项目属性 --> 链接器--> 输入--> 附加依赖项" 中 添加内容 1.E:\OpenCV_something\opencv-3.4.6 ...