• redis 学习札记4-sortset


    redis 学习笔记4--sortset

    redis学习笔记3--sortSet

    终于到最后一个数据结构了,加油!!

    整体结构图:

    http://dl.iteye.com/upload/picture/pic/115995/0ee3789f-33e1-35ca-ac65-cbd6b4e4e147.jpg

    1.ZADD

    语法: ZADD key score value 

    释义:添加执行分数的value, score必须是double类型的数值

    实践:

    redis 127.0.0.1:6379> zadd z1 1 a 

    (integer) 1

    redis 127.0.0.1:6379> zadd z1 2 b 

    (integer) 1

    redis 127.0.0.1:6379> zadd z1 20 bb 

    (integer) 1

    redis 127.0.0.1:6379> zadd z1 10 ff  

    (integer) 1

    redis 127.0.0.1:6379> zrange z1 0 -1 

    1) "a"

    2) "b"

    3) "ff"

    4) "bb"

    2.ZREM

    语法:ZREM key value 

    释义:删除指定value的值

    实践:

    redis 127.0.0.1:6379> ZREM z1 b            // 删除,指定value

    (integer) 1

    redis 127.0.0.1:6379> zrange z1 0 -1         

    1) "a"

    2) "ff"

    3) "bb"

    3.ZCARD

    语法:ZCARD key 

    释义:获取集合总数

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 

    1) "a"

    2) "ff"

    3) "bb"

    redis 127.0.0.1:6379> zcard z1 

    (integer) 3

    4.ZCOUNT

    语法:zcount key min max

    释义:计算在指定范围内的元素数目

    (1 6  ==== 1 < x <= 6        // 括号代表开区间

    1 6   ==== 1 <= x <= 6

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "1"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zcount z1 5 10      // 闭区间,能取得10

    (integer) 1

    redis 127.0.0.1:6379> zcount z1 5 (10     //开区间,无法得到10

    (integer) 0

    5.ZSCORE

    语法:ZSCORE key value

    释义:获取指定key的分数

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "1"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zscore z1 a             // 获取a的分数

    "1"

    6.ZINCRBY

    语法:ZINCRBY key score value 

    释义:对于指定的value进行加法操作

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "1"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zincrby z1 10 a            // 对于a+10

    "11"

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "ff"

    2) "10"

    3) "a"

    4) "11"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zincrby z1 -3 a          // 对于a-3

    "8"

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "8"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    7.ZRANGE|ZREVRANGE

    语法:ZRANGE|ZREVRANGE key 

    释义:显示所有列表

    redis 127.0.0.1:6379> zrange z1 0 -1 

    1) "a"

    2) "ff"

    3) "bb"

    redis 127.0.0.1:6379> zrevrange z1 0 -1 

    1) "bb"

    2) "ff"

    3) "a"

    8.ZRANGEBYSCORE|ZREVRANGEBYSCORE

    语法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

    释义:获取指定范围内的数值

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "8"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zrangebyscore z1 -inf +inf   // 在不清楚最大最小范围的时间,可以采用这个 -inf +inf 

    1) "a"

    2) "ff"

    3) "bb"

    redis 127.0.0.1:6379> zrangebyscore z1 8 10       // 闭区间

    1) "a"

    2) "ff"

    redis 127.0.0.1:6379> zrangebyscore z1 (8 10      // 开区间

    1) "ff"

    9.ZRANK|ZREVRANK

    语法:zrank|zremrank  key member

    释义:获取指定值在集合中的排名,以0代表第一位 。(顺序或是逆序)

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "a"

    2) "8"

    3) "ff"

    4) "10"

    5) "bb"

    6) "20"

    redis 127.0.0.1:6379> zrank z1 a 

    (integer) 0

    redis 127.0.0.1:6379> zrank z1 ff     //顺序位置

    (integer) 1 

    redis 127.0.0.1:6379> zrevrank z1 a        //逆序位置

    (integer) 2

    10.ZREMRANGEBYRANK

    语法 :ZREMRANGEBYRANK key min max 

    释义:删除指定下标的数据

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 

    1) "a"

    2) "ff"

    3) "bb"

    redis 127.0.0.1:6379> zremrangebyrank z1 0 1 

    (integer) 2

    redis 127.0.0.1:6379> zrange z1 0 -1 

    1) "bb"

    11.ZREMRANGEBYSCORE

    语法 :ZREMRANGEBYSCORE key min max

    释义:根据指定分数删除数据

    实践:

    redis 127.0.0.1:6379> zrange z1 0 -1 withscores 

    1) "bb"

    2) "20"

    redis 127.0.0.1:6379> ZREMRANGEBYSCORE z1 -inf +inf    // 删除所有的数据 等同于  del z1

    (integer) 1

    redis 127.0.0.1:6379> zrange z1 0 -1 

    (empty list or set)

    12.ZINTERSTORE

    语法:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

    释义:

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

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

    实践:

    redis 127.0.0.1:6379> zrange s1 0 -1 

    1) "a"

    2) "b"

    3) "c"

    redis 127.0.0.1:6379> zrange s2 0 -1 

    1) "a"

    2) "c"

    3) "d"

    redis 127.0.0.1:6379> zinterstore s3 2 s1 s2 

    (integer) 2

    redis 127.0.0.1:6379> zrange s3 0 -1 

    1) "a"

    2) "c"

    redis 127.0.0.1:6379> 

    13.ZUNIONSTORE

    语法:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

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

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

    WEIGHTS

     使用 WEIGHTS 选项,你可以为 每个 给定有序集 分别 指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。

     如果没有指定 WEIGHTS 选项,乘法因子默认设置为 1 。

    AGGREGATE

     使用 AGGREGATE 选项,你可以指定并集的结果集的聚合方式。

     默认使用的参数 SUM ,可以将所有集合中某个成员的 score 值之 和 作为结果集中该成员的 score 值;使用参数 MIN ,可以将所有集合中某个成员的 最小 score 值作为结果集中该成员的 score 值;而参数 MAX 则是将所有集合中某个成员的 最大 score 值作为结果集中该成员的 score 值。

    实践:

    redis 127.0.0.1:6379> zunionstore s3 2 s1 s2 

    (integer) 4

    redis 127.0.0.1:6379> zrange s3 0 -1 

    1) "b"

    2) "a"

    3) "c"

    4) "d"

    redis 127.0.0.1:6379> 

  • 相关阅读:
    C# 关键字 virtual、override和new的用法
    架构技术及架构要素总结【转】
    vue文件目录结构
    vue项目中,如何对static文件夹下的静态文件添加时间戳,以达到清除缓存
    webpack中关于require与import的区别
    vue 根据下拉框动态切换form的rule
    el-select 根据value查询其对应的label值
    web前端项目规范
    JavaScript 编码规范
    HTML 编码规范
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/4344230.html
Copyright © 2020-2023  润新知