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

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. IntellJ IDEA快捷键汇总

    今天开始使用IDEA,各种不习惯,一会Eclipse一会IDEA来回切换,需要一个熟悉的过程,记录一下常用的快捷键. IDEA常用快捷键 Alt+回车 导入包,自动修正Ctrl+N  查找类Ctrl+ ...

  2. Windbg内核调试之四: Dump文件分析

    Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Window ...

  3. 序章:为什么学习使用kotlin、及kotlin的一些碎碎念

    为什么使用kotlin? 当然是因为项目目前的开发语言是kotlin啊! 一方面是想能够尽快适应项目,另一方面,kotlin这门语言独特的语法,确实很吸引我,也让我意识到java代码在某些程度上的繁琐 ...

  4. linux环境下搭建redis

    1. 官网下载安装包,然后解压,或者直接从github上pull下来. git clone https://github.com/antirez/redis.git 2. 确保linux环境上已安装g ...

  5. 用反射封装HttpHandler,实现通过action方法名调用方法

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  6. JSF中使用f:ajax标签无刷新页面改变数据

    ajax本是用在前端的一种异步请求数据的操作,广泛用于js中,一般的js框架如jq都有被封装好的方法,用于发起异步请求操作.异步操作可以增强用户体验和操作,越来越多的程序都在使用ajax.JSF的fa ...

  7. CodeForces 620E:New Year Tree(dfs序+线段树)

    E. New Year Treetime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputout ...

  8. MySQL导入MongoDB

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

  9. 【转】href="#"与"javascript:void(0);"的区别

    在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a&g ...

  10. [MySQL]表创建外键失败:ERROR 1005 (HY000): Can't create table (errno: 150)

    在数据库中建立一个新表(表引擎为InnoDB)时, 需要用到外键, 所以就在建表的时候加了一句foreign key (column) references table_name.但是执行时出现 ER ...