zoukankan      html  css  js  c++  java
  • redis 交集、并集、差集

    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"
    

      

  • 相关阅读:
    RedHat中代理设置
    CentOS7主机名修改
    ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台
    Zookeeper+Kafka集群部署
    Centos7 中lvs DR配置
    linux抓包命令之tcpdump
    python调用ansible接口API执行命令
    LVS 实现负载均衡原理及安装配置详解
    Ansible 之Playbook
    Linux系统date时间设定
  • 原文地址:https://www.cnblogs.com/beiyi888/p/11209686.html
Copyright © 2011-2022 走看看