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"
    

      

  • 相关阅读:
    遇见phpDesigner我笑了 PHP开发利器
    如何在ThinkPHP中开启调试模式
    thinkphp执行流程
    CAS实现单点登录--错误记录
    HttpServletRequest常用获取URL的方法
    OpenCV图片矩阵操作相关,对png图片操作(多通道)
    万能数据库查询分析器使用技巧之(十六)
    ActiveMQ系列之五:ActiveMQ的Transport
    ActiveMQ系列之四:用ActiveMQ构建应用
    ActiveMQ系列之三:理解和掌握JMS
  • 原文地址:https://www.cnblogs.com/beiyi888/p/11209686.html
Copyright © 2011-2022 走看看