先来看一下这个命令的定义:

Redis Zinterstore 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination 。

默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。

语法

redis Zinterstore 命令基本语法如下:

redis 127.0.0.1:6379> ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

用大白话解释的话就是,首先这个命令是用来合并多个(也可以是两个)集合中共同拥有的key的值用的.

实例:

#创建一个数学成绩的有序集合,有三个学生 张三、李四、王五
127.0.0.1:6379> zadd math_score 50 'zhang san' 95 'lisi' 78 'wangwu'
(integer) 3
#按照升序查看结果集
127.0.0.1:6379> zrangebyscore math_score 0 100 withscores
1) "zhang san"
2) "50"
3) "wangwu"
4) "78"
5) "lisi"
6) "95"
#创建一个英语成绩的有序集合,里面有四个学生 张三、李四、王五、朱六
127.0.0.1:6379> zadd english_score 90 'zhang san' 50 'zhu liu' 75 'lisi' 80 'wangwu'
(integer) 4
#按照升序查看结果集
127.0.0.1:6379> zrangebyscore english_score 0 100
1) "zhu liu"
2) "lisi"
3) "wangwu"
4) "zhang san"
#如果加了 withscores 结果集里面会出现成绩
127.0.0.1:6379> zrangebyscore english_score 0 100 withscores
1) "zhu liu"
2) "50"
3) "lisi"
4) "75"
5) "wangwu"
6) "80"
7) "zhang san"
8) "90"
#现在我们想查看两门功课学生的总分排序,结果保存在新的集合sum_score中,
sum_score 后面的数字2 代表要合并几个集合,我们合并两个就写2.
127.0.0.1:6379> zinterstore sum_score 2 math_score english_score
(integer) 3
#查看合并后的结果,我们发现并没有 朱六的成绩,因为朱六的信息只存在于
english_score中,Zinterstore 命令计算给定的一个或多个有序集的交集,
也就是集合中共同有有的值才会合并到新的结果集中.
127.0.0.1:6379> zrangebyscore sum_score 0 300 withscores
1) "zhang san"
2) "140"
3) "wangwu"
4) "158"
5) "lisi"
6) "170"

Zinterstore 命令的更多相关文章

  1. Redis学习笔记(3) Redis基础类型及命令之二

    1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...

  2. Redis数据结构及相应的命令

    Redis可以存储键(key)与5种不同类型值(value)之间的映射,5中不同类型的值分别为字符串(string),列表(list),散列(hash),集合(set)和有序集合(sorted set ...

  3. Redis中的数据结构与常用命令

    开发系统:Ubuntu 17.04Redis驱动:StackExchange.Redis 1.2.3Redis版本:3.2.1开发平台:.NET Core 对于Redis的介绍这里只写一句:Redis ...

  4. redis 的简单命令

    以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...

  5. redis命令手册

    Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis E ...

  6. Redis 学习之路 (010) - redis命令手册

    Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis E ...

  7. 【命令】Redis常用命令整理

    doc 环境下使用命令:       keys 命令         ?    匹配一个字符         *    匹配任意个(包括0个)字符         []    匹配括号间的任一个字符, ...

  8. Redis常用命令整理

    doc 环境下使用命令:       keys 命令         ?    匹配一个字符         *    匹配任意个(包括0个)字符         []    匹配括号间的任一个字符, ...

  9. 第三课补充01——set类型 sorted类型命令操作详解,redis管道及事务

    1. set类型的命令操作: (1)sadd命令:向key指定的set集合添加成员 ##sadd命令:是设置set集合类型的数据,sadd  <key> <mumber> [& ...

随机推荐

  1. tp验证码

    一.生成验证码 1.commonController.class.php class CommonController extends Controller{ public function getV ...

  2. Unity项目UI图片压缩格式(UGUI)

    http://blog.csdn.net/bobodan123/article/details/70316538 UI制作时候使用的是Ps 8位 RGB通道的色彩. 但导出的是16位RGBA色彩的图片 ...

  3. maven工程编译成jar包

    在pom文件的project节点下增加build节点,mvn package即可 <build> <plugins> <plugin> <artifactId ...

  4. StringBuilder、StringBuffer、String区别

          相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天重新把这个概念给大家复习一下,顺便牵出 J2 ...

  5. POJ3421(质因数分解)

    X-factor Chains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6501   Accepted: 2023 D ...

  6. MySQL导入MongoDB

    一.MongoDB的导入导出 mongoDB的导入导出,分为mongoDB官方提供的工具类,和第三方的工具类.下面依次介绍下: 1.1.mongoDB提供的工具 1.1.1.mongoimport工具 ...

  7. Spring学习五

    1: servlet生命周期:  Servlet加载    ->   实例化->   服务 ->  销毁 2:Servlet重要函数: init():在Servlet的生命周期中,仅 ...

  8. 卸载驱动时,没有/lib/modules目录

    卸载驱动时,没有/lib/modules目录,怎么办? 答:没有这个目录,就创建这个目录! #rmmod  spi_oled_drv #rmmod:  chdir (/lib/modules): no ...

  9. TP-Link WR703N OpenWRT固件修改WAN LAN排序

    有一种方法就是macvlan了.添加到rc.local文件中,具体不再阐述. 此方法只适合编译固件的情况下调整WAN/LAN顺序. wr703n等(包含其他未列出的单网口路由,AP),修改WAN LA ...

  10. Java学习之SpringMVC零配置实践

    概述:本实践主要是对SpringMVC的主要功能做了一个大概的体验,将原来的SpringMVC的大量配置改成用SpringBoot进行集成,做到了零XML配置,本次实践分为两个部分,一部分为基本功能实 ...