精华内容
下载资源
问答
  • redis 交集并集差集

    万次阅读 2019-03-16 17:44:01
    文章目录sinter 、sunion 、sdiff 示例sinter 代码示例sunion 代码示例sdiff 代码示例sinterstore、sunionstore、sdiffstore ...redis 支持 Set集合的数据存储,其中有三个比较特殊的方法: sinter key [key …...

    一、sinter 、sunion 、sdiff

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

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

    1.1、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"
    

    1.2、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"
    

    1.3、sdiff 差集的示例

    redis> SMEMBERS peter_movies
    1) "bet man"
    2) "start war"
    3) "2012"
    
    redis> SMEMBERS joe_movies
    1) "hi, lady"
    2) "Fast Five"
    3) "2012"
    
    redis> SDIFF peter_movies joe_movies     # 取的是两个集合的差集
    1) "bet man"
    2) "start war"
    

    二、sinterstore、sunionstore、sdiffstore

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

    2.1、sinterstore 交集的示例

    redis> SMEMBERS songs
    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"
    

    2.2、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"
    

    2.3、sdiffstore 差集的示例

    redis> SMEMBERS joe_movies
    1) "hi, lady"
    2) "Fast Five"
    3) "2012"
    
    redis> SMEMBERS peter_movies
    1) "bet man"
    2) "start war"
    3) "2012"
    
    redis> SDIFFSTORE joe_diff_peter  joe_movies  peter_movies          # 将差集的数据存储到 joe_diff_peter 对象中
    (integer) 2
    
    redis> SMEMBERS joe_diff_peter              # 查看 joe_diff_peter 对象中的 所有数据
    1) "hi, lady"
    2) "Fast Five"
    
    展开全文
  • System.out.println("交集:" + result); result.clear(); result.addAll(set1); result.removeAll(set2); System.out.println("差集:" + result); result.clear(); result.addAll(set1); result.addAll...

    先学习学习Set 的方法:

    是不是一眼就明白了:

    public class TestSet {
    
        public static void main(String[] args) {
    
            Set<String> result = new HashSet<String>();
            Set<String> set1 = new HashSet<String>() {
                {
                    add("王者荣耀");
                    add("英雄联盟");
                    add("穿越火线");
                    add("地下城与勇士");
                }
            };
    
            Set<String> set2 = new HashSet<String>() {
                {
                    add("王者荣耀");
                    add("地下城与勇士");
                    add("魔兽世界");
                }
            };
    
            result.clear();
            result.addAll(set1);
            result.retainAll(set2);
            System.out.println("交集:" + result);
    
            result.clear();
            result.addAll(set1);
            result.removeAll(set2);
            System.out.println("差集:" + result);
    
            result.clear();
            result.addAll(set1);
            result.addAll(set2);
            System.out.println("并集:" + result);
    
        }
    
    }

     

     

     

    参考set集合:

    https://blog.csdn.net/silentwolfyh/article/details/74938819

    参考 redis :

    https://blog.csdn.net/xiaojin21cen/article/details/88602153

    https://blog.csdn.net/xreztento/article/details/53289193

    展开全文
  • Redis中set类型的交集并集差集

    千次阅读 2019-04-28 11:15:07
    1.sdiff 2个集合比较,并返回第一个集合的差集 127.0.0.1:6379> smembers set1 1) "two" 2) "one" 127.0.0.1:6379> smembers set2 1) "ghy" 2) "one" 127.0.0.1:6379> sdiff set1 set2 1) "two" 2....

    1.sdiff 2个集合比较,并返回第一个集合的差集
    127.0.0.1:6379> smembers set1
    1) "two"
    2) "one"
    127.0.0.1:6379> smembers set2
    1) "ghy"
    2) "one"
    127.0.0.1:6379> sdiff set1 set2
    1) "two"

    2.sdiffstore 2个集合比较,并返回第一个集合的差集保存进另一个集合中
    127.0.0.1:6379> sdiffstore set3 set1 set2
    (integer) 1
    127.0.0.1:6379> smembers set3
    1) "two"

    3.sinter 2个集合比较,并返回第一个集合的交集
    127.0.0.1:6379> smembers set1
    1) "two"
    2) "one"
    127.0.0.1:6379> smembers set2
    1) "ghy"
    2) "one"
    127.0.0.1:6379> sinter set1 set2
    1) "one"

    4.sinterstore 2个集合比较,并返回第一个集合的交集保存进另一个集合中
    127.0.0.1:6379> smembers set1
    1) "two"
    2) "one"
    127.0.0.1:6379> smembers set2
    1) "ghy"
    2) "one"
    127.0.0.1:6379> sinterstore set5 set1 set2
    (integer) 1
    127.0.0.1:6379> smembers set5
    1) "one"

    5.sunion 2个集合比较,并返回两集合的并集
    127.0.0.1:6379> smembers set1
    1) "two"
    2) "one"
    127.0.0.1:6379> smembers set2
    1) "ghy"
    2) "one"
    127.0.0.1:6379> sunion set1 set2
    1) "two"
    2) "one"
    3) "ghy"

    6.sunionstore 2个集合比较,并返回第一个集合的并集保存进另一个集合中
    127.0.0.1:6379> smembers set1
    1) "two"
    2) "one"
    127.0.0.1:6379> smembers set2
    1) "ghy"
    2) "one"
    127.0.0.1:6379> sunionstore set9 set1 set2
    (integer) 1
    127.0.0.1:6379> smembers set9
    1) "two"
    2) "one"
    3) "ghy"

    展开全文
  • 第一个包 先获取set包 go get -u gopkg.in/fatih/set.v0 如下演示set并集交集差集的计算 package main .../*set并集 交集 差集计算示例*/ func main() { a := set.New(set.ThreadSafe) ...

    第一个包

    先获取set包

    go get -u gopkg.in/fatih/set.v0

    如下演示set并集,交集,差集的计算

    package main
    
    import (
        "fmt"
        "gopkg.in/fatih/set.v0"
    )
    
    /*set并集 交集 差集计算示例*/
    func main() {
        a := set.New(set.ThreadSafe)
        a.Add(1)
        a.Add(2)
        a.Add(3)
    
        b := set.New(set.ThreadSafe)
        b.Add(2)
        b.Add(3)
        b.Add(4)
    
        //并集
        unionSet := set.Union(a, b)
        fmt.Printf("并集:%v\n", unionSet)
    
        //交集
        intersectionSet := set.Intersection(a, b)
        fmt.Printf("交集:%v\n", intersectionSet)
    
        //差集
        diffS1S2 := set.Difference(a, b)
        fmt.Printf("差集(属a不属b):%v\n", diffS1S2)
    
        diffS2S1 := set.Difference(b, a)
        fmt.Printf("差集(属b不属a):%v\n", diffS2S1)
    }
    

    输出 :

    并集:[4, 1, 2, 3]
    交集:[2, 3]
    差集(属a不属b):[1]
    差集(属b不属a):[4]

    第二个包

    go get -u github.com/deckarep/golang-set

    展开全文
  • 差集:返回两个集合不同的部分 sdiff 集合1 集合2 注意:在集合1中存在,但在集合2中不存在的值,有点像向左靠齐 交集:两个集合中都存在的部分 sinter 集合1 集合2 并集:将两个集合的元素合并到一起,并去掉重复元素...
  • System.out.println("并集:" + result); } private static void remove(Set<String> set1, Set<String> set2) { Set<String> result = new HashSet(); result.addAll(set1); result.removeAll(set2); ...
  • 1.sdiff 2个集合比较,并返回第一个集合的差集 127.0.0.1:6379> smembers set1 1) "two" 2) "one" 127.0.0.1:6379> smembers set2 1) "ghy" 2) "one" 127.0.0.1:6379> sdiff set1 set2 1) "two" 2....
  • 获取两个list 的交集 list(set(listA).intersection(set(listB))) 获取两个list 的并集 list(set(listA).union(set(listB))) 获取两个 list 的差集 list(set(listB).difference(set(listA))) # listB中有而list...
  • 回顾完基础知识之后,我们看一下今天的重点内容,那就是集合的交集并集差集: 我们先定义两个集合: In [6]: set1 = {1,2,3,4,5} In [7]: set2 = {3,4,5,6,7} 然后我们进行相关操作: In [8]: set1 & set2 # ...
  • 两个List集合取交集并集差集

    千次阅读 2020-03-04 13:20:53
    下面是:两个List集合取交集并集差集、去重并集的一个简单Demo,可供参考: package com.ymdd.galaxy.appmanage.core.appauth.service; import java.util.ArrayList; import java.util.List; import static java...
  • 差集表示在集合1中存在,但在集合2中不存在的值 sdiff 集合1 集合2 交集表示两个集合中都存在的值 sinter 集合1 集合2 并集表示将两个集合的元素合并到一起,并去掉重复元素 sunion 集合1 集合2 ...
  • Redis支持多种类型的数据结构,最简单的字符串(strings),适合存储对象的哈希(hash),简单的字符串列表(list),无序集合(set),有序集合(sorted set),以及...
  • 为了更好地展示respage01的数据,我想获取当天数据与之前数据的差集,从而得到当天是否有店面减少或者增加,其次我想统计所有历史数据的总量。 使用redis的set计算功能并django接口化 以上的需求可以用的redis的原生...
  • sdiff a b 差集结果保存:sdiffstore filename key1 key2 eg:sdiffstore ab a b 求两个set的交集:sinter key1 key2 eg:sinter a b 交集结果保存:sinterstore filename key1 key2 eg:sinterstore ab a b 求两个...
  • redis交集差集、合集注意点

    千次阅读 2019-09-26 20:03:45
    这样可以将一个大的计算任务分为多个小的计算任务,(很多公司的redis服务器应该都是有超时策略的)不会过度影响到读请求。也可以采用读写分离,计算任务放到一个redis服务器,读请求放到另一台服务器 ...
  • 实现多个数组的数据过滤,最后用一个数组保存数据,实质上就是过滤集合数组,最后得出一个交集。最后返回一个数组。
  • 并集,并把相同的删除 { 1 , 2 , 3 , 4 , 5 , 6 , 9 } >> > { 1 , 2 , 3 , 4 , } ^ { 3 , 4 , 7 , } 求对称差集,把两个 set 各自的、与对面不同的部分、拿出来 { 1 , 2 , 7 } 5.定义...
  • 项目对比数据,需要根据redis中和数据库中的数据进行操作redis缓存,简单记录一下处理逻辑。 public static void main(String[] args) { List<String> redisList = new ArrayList<>(); List<...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,556
精华内容 8,622
关键字:

redis交集,差集,并集

redis 订阅