redis 交集、并集、差集的具体使用

 更新时间:2021年02月23日 14:12:56   作者:xiaojin21cen  
这篇文章主要介绍了redis 交集、并集、差集的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

到此这篇关于redis 交集、并集、差集的具体使用的文章就介绍到这了,更多相关redis 交集、并集、差集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • spring boot集成redis基础入门实例详解

    spring boot集成redis基础入门实例详解

    redis在spring boot项目开发中是常用的缓存套件,常见使用的是spring-boot-starter-data-redis,这篇文章主要介绍了spring boot集成redis基础入门,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 手动实现Redis的LRU缓存机制示例详解

    手动实现Redis的LRU缓存机制示例详解

    这篇文章主要介绍了手动实现Redis的LRU缓存机制示例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Redis Sentinel的使用方法

    Redis Sentinel的使用方法

    这篇文章主要介绍了Redis Sentinel的使用方法,帮助大家更好的理解和学习使用Redis数据库,感兴趣的朋友可以了解下
    2021-03-03
  • 如何保证Redis与数据库的数据一致性

    如何保证Redis与数据库的数据一致性

    这篇文章主要介绍了如何保证Redis与数据库的数据一致性,文中举了两个场景例子介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Redis不仅仅是缓存,还是……

    Redis不仅仅是缓存,还是……

    Redis是一个开源的(BSD协议),内存中的数据结构存储,它可以用作数据库,缓存,消息代理。这篇文章主要介绍了Redis不仅仅是缓存,还是……,需要的朋友可以参考下
    2020-12-12
  • 利用Redis统计网站在线活跃用户的方法

    利用Redis统计网站在线活跃用户的方法

    Redis支持对String类型的value进行基于二进制位的置位操作。通过将一个用户的id对应value上的一位,通过对活跃用户对应的位进行置位,就能够用一个value记录所有活跃用户的信息。下面这篇文章主要介绍了利用Redis统计网站在线活跃用户的方法,需要的朋友可以参考。
    2017-01-01
  • 在Redis集群中使用pipeline批量插入的实现方法

    在Redis集群中使用pipeline批量插入的实现方法

    这篇文章主要介绍了在Redis集群中使用pipeline批量插入的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Redis数据库原理深入刨析

    Redis数据库原理深入刨析

    在之前的文章我们介绍过,Redis服务器在启动之初,会初始化RedisServer的实例,在这个实例中存在很多重要的属性结构,同理本篇博客中介绍的数据库实现原理也会和其中的某些属性相关,我们继续看一下吧
    2022-11-11
  • 利用Redis进行数据缓存的项目实践

    利用Redis进行数据缓存的项目实践

    在实际的业务场景中,Redis 一般和其他数据库搭配使用,用来减轻后端数据库的压力,本文就介绍了利用Redis进行数据缓存的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2022-06-06
  • 使用Redis实现用户积分排行榜的教程

    使用Redis实现用户积分排行榜的教程

    这篇文章主要介绍了使用Redis实现用户积分排行榜的教程,包括一个用PHP脚本进行操作的例子,需要的朋友可以参考下
    2015-04-04

最新评论