Redis 难懂命令-- ZINTERSTORE

article/2025/7/22 13:29:48

**背景:**学习的过程中 常用的redis命令都能快速通过官方文档理解 但是还是有一些比较难懂的命令

**目的:**写博客记录一下(当然也可以使用AI搜索)

在Redis中,ZINTERSTORE 是一个用于计算多个有序集合(Sorted Set)交集的命令,其主要功能是将多个有序集合的交集结果存储到一个新的有序集合中。以下是关于 ZINTERSTORE 的详细用法和相关说明:


1. 基本语法

ZINTERSTORE 的语法如下:

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
  • destination:目标键,用于存储交集结果。
  • numkeys:参与交集运算的有序集合数量。
  • key:参与交集运算的有序集合的键。
  • WEIGHTS:为每个有序集合的成员分数指定权重,用于加权计算。
  • AGGREGATE:指定交集中成员的分数计算方式,可选值为 SUMMINMAX

2. 功能说明

  • 交集运算ZINTERSTORE 会计算所有指定有序集合的交集,即只保留那些在所有输入集合中都存在的成员。

  • 分数计算:

    • 默认值(SUM) :交集结果中每个成员的分数是所有输入集合中该成员分数的总和。
    • MIN:交集结果中每个成员的分数是所有输入集合中该成员分数的最小值。
    • MAX:交集结果中每个成员的分数是所有输入集合中该成员分数的最大值。

3. 示例

示例1:基本用法
ZADD srcset1 5 M 6 N 7 O
ZADD srcset2 3 N 2 O 4 P
ZINTERSTORE desset 2 srcset1 srcset2
ZRANGE desset 0 -1 WITHSCORES

输出

1) "N"
2) "9"
3) "O"
4) "9"

在这个示例中,desset 存储了 srcset1srcset2 的交集结果,并且每个成员的分数是两个集合中对应分数的总和。

示例2:使用权重
ZADD srcset1 5 M 6 N 7 O
ZADD srcset2 3 N 2 O 4 P
ZINTERSTORE desset 2 srcset1 srcset2 WEIGHTS 2 3
ZRANGE desset 0 -1 WITHSCORES

输出

1) "N"
2) "15"
3) "O"
4) "13"

在这个示例中,srcset1 的权重为 2,srcset2 的权重为 3,每个成员的分数是两个集合中对应分数乘以权重后的总和。

示例3:使用MIN聚合
ZADD srcset1 5 M 6 N 7 O
ZADD srcset2 3 N 2 O 4 P
ZINTERSTORE desset 2 srcset1 srcset2 AGGREGATE MIN
ZRANGE desset 0 -1 WITHSCORES

输出

1) "N"
2) "6"
3) "O"
4) "7"

在这个示例中,desset 存储了 srcset1srcset2 的交集结果,并且每个成员的分数是两个集合中对应分数的最小值。


4. 注意事项

  • 键类型检查:如果任何输入键不是有序集合(Sorted Set),ZINTERSTORE 会返回错误。

  • 结果覆盖:如果目标键 destination 已经存在,ZINTERSTORE 会覆盖该键的内容。

  • 性能优化ZINTERSTORE 的时间复杂度为 O(N * log M),其中 N 是输入集合的基数, M 是输出集合的基数。可以通过减少输入集合的数量或结果集的大小来优化性能 。

img

5. 应用场景

  • 数据交集:用于查找多个数据集中的共同元素。
  • 数据聚合:用于计算多个数据集中的最小值或最大值。
  • 数据分析:用于分析不同数据集之间的关系,例如用户行为分析、商品推荐等。

6. 总结

ZINTERSTORE 是 Redis 中一个非常强大的命令,用于计算多个有序集合的交集,并将结果存储到一个新的有序集合中。通过合理使用 WEIGHTSAGGREGATE 参数,可以实现灵活的分数计算和数据聚合。在实际应用中,ZINTERSTORE 可以用于数据交集、数据聚合、数据分析等多个场景。


http://www.hkcw.cn/article/goMRFxlgOV.shtml

相关文章

7.atlas安装

1.服务器规划 软件版本参考: https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.2?hlzh-cn 由于hive3.1.3不完全支持jdk8,所以将hive的版本调整成4.0.1。这个版本没有验证过,需要读者自己抉择。 所有的软件都安装再/op…

RabbitMQ和MQTT区别与应用

RabbitMQ与MQTT深度解析:协议、代理、差异与应用场景 I. 引言 消息队列与物联网通信的重要性 在现代分布式系统和物联网(IoT)生态中,高效、可靠的通信机制是构建稳健、可扩展应用的核心。消息队列(Message Queues&am…

【技能篇】RabbitMQ消息中间件面试专题

1. RabbitMQ 中的 broker 是指什么?cluster 又是指什么? 2. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布…

[3D GISMesh]三角网格模型中的孔洞修补算法

📐 三维网格模型空洞修复技术详解 三维网格模型在扫描、重建或传输过程中常因遮挡、噪声或数据丢失产生空洞(即边界非闭合区域),影响模型的完整性与可用性。空洞修复(Hole Filling)是计算机图形学和几何处…

基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

[ctfshow web入门] web81

信息收集 新增过滤:,伪协议都有:,这意味着伪协议不能用了 if(isset($_GET[file])){$file $_GET[file];$file str_replace("php", "???", $file);$file str_replace("data", "???", $file);$file st…

2025年应用心理学与社会环境国际会议(ICAPSE 2025)

2025年应用心理学与社会环境国际会议(ICAPSE 2025) 2025 International Conference on Applied Psychology and Social Environment 一、大会信息 会议简称:ICAPSE 2025 大会地点:中国北京 审稿通知:投稿后2-3日内通…

Windows 11 家庭版 安装Docker教程

Windows 家庭版需要通过脚本手动安装 Hyper-V 一、前置检查 1、查看系统 快捷键【winR】,输入“control” 【控制面板】—>【系统和安全】—>【系统】 2、确认虚拟化 【任务管理器】—【性能】 二、安装Hyper-V 1、创建并运行安装脚本 在桌面新建一个 .…

Redis 数据恢复的月光宝盒,闪回到任意指定时间

在数据库的运维工作中,DBA 应该选择哪一种方案,确保 Redis 数据库崩溃后可以对数据进行回档,恢复业务运行? 一般情况下,DBA 可以通过 Redis 原生的持久化机制,如 RDB 快照持久化或者 AOF 日志持久化的方案…

鸿蒙 HarmonyOS - SideBarContainer 组件自学指南

在日常开发中,如果你有类似「左侧导航 右侧内容」的布局需求,比如后台管理界面、文件管理器、设置页等,​​SideBarContainer​​ 是非常值得掌握的组件。它自带侧边栏和主内容区的分离机制,还支持折叠、拖拽、控制按钮和多种显示…

一个Mybatisplus组件扫描不当引起的bug:弄巧成拙,认真的锅,自我怀疑

在我们系统基建层的业务组件包 sby-biz-component 中,最初,我写了两个业务组件,一个是 通道错误码组件,一个是 审核流水组件。 这两个业务组件都要依赖Mybatisplus来操作数据。 com.sby.bizcomponent├── auditflow│ └── A…

t015-预报名管理系统设计与实现 【含源码!!!】

项目演示地址 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装预报名管理系统软件来发挥其高效地信息处理的…

数学建模之最短路径问题

1 问题的提出 这个是我们的所要写的题目,我们要用LINGO编程进行编写这个题目,那么就是需要进行思考这个怎么进行构建这个问题的模型 首先起点,中间点,终点我们要对这个进行设计 2 三个点的设计 起点的设计 起点就是我们进去&am…

刀具问题讨论

1 刀具的问题概述 问题描述 一道工序用自动化车床连续加工某种零件,由于刀具损坏等原因该工序会出现故障,其中刀具损坏故障占95%, 其它故障仅占 5%。工序出现故障是完全随机的, 假定在生产任一零件时出现故障的机会均相同。工作人员通过检查零件来确定…

stm32 / arduino TPL0401A使用教程

这是在给英国的一个学生讲课时用到的一个芯片,做一个dcdc的反馈电路,刚开始用的不是这个,后来发现国内这个芯片用的挺成熟,就选择了这个。 芯片说明 首先我买的是TPL0401A,我发现淘宝上卖的都是A,其实想用C&#xff0…

进程调度策略和进程优先级

Linux 的进程调度策略和进程优先级是操作系统为保证系统响应性、公平性和高性能所设计的关键机制。 进程调度策略 Linux 支持 两大类调度策略: 普通调度策略(CFS: Completely Fair Scheduler), 适用于大部分用户态进程。实时调…

「Java教案」Java程序的构成

课程目标 1.知识目标 能够按照Java标识符的命名规则,规范变量的命名。能够区分Java中的关键字与保留字。能够对注释进行分类,根据注释的用途合理的选择注释方式。 2.能力目标 能编写符合规范的标识符。能识别Java中的关键字和…

随记 配置服务器的ssl整个过程

第一步 先了解到这个公钥私钥服务器自己可以生成,但是没什么用,浏览器不会信任的,其他人访问不了。所以要一些中间机构颁布的证书才有用。 一般的服务器直接 安装 Certbot 和插件 //CentOS Nginx 用户: sudo yum install epe…

Spring Cloud 知识

Spring Cloud 知识 一. 服务注册与发现1. Eureka1. Eureka 的概念2. Eureka 的特点3. Eureka 的应用场景4. Eureka 的实现原理 2. Nacos1. Nacos 的概念2. Nacos 的特点3. Nacos 的应用场景4. Nacos 的实现原理1. 服务注册与发现:2. 配置管理:3. 一致性算…

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司 微振控制在现行国家标准《电子工业洁净厂房设计规范》GB50472中有关微振控制的规定主要有:洁净厂房的微振控制设施的设计分阶段进行,应包括设计、施工和投产等各阶段的微振测试、厂房建…