• Zinterstore 命令


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

    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"
  • 相关阅读:
    checkbox 实现单选效果(html)
    HDU-6850 Game
    牛客练习赛29----F 算式子
    牛客多校第二场 B Boundary
    D. Omkar and Circle
    【洛谷】P3306 [SDOI2013]---- 随机数生成器
    二次剩余
    【洛谷】--P2704 [NOI2001]炮兵阵地
    【洛谷】4310 绝世好题
    快速排序
  • 原文地址:https://www.cnblogs.com/xisuo/p/9239459.html
Copyright © 2020-2023  润新知