• Redis学习第六课:Redis ZSet类型及操作


    Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列字段的数据表,一列存value,一列存顺序编号。操作中key理解为zset的名字。

    有序集合Zset的操作:

    zadd:向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序。(用法:zadd 有序集合 顺序编号 元素值)

    127.0.0.1:6379> zadd zset1 1 two
    (integer) 1
    127.0.0.1:6379> zadd zset1 2 one
    (integer) 1
    127.0.0.1:6379> zadd zset1 3 seven
    (integer) 1

    127.0.0.1:6379> zrange zset1 0 -1 
    1) "two"
    2) "one"
    3) "seven"
    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "one"
    4) "2"
    5) "seven"
    6) "2"

    zrem:删除名称为key的zset中的元素。(用法:zrem 有序集合 要删除的元素值)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "one"
    4) "2"
    5) "seven"
    6) "2"
    127.0.0.1:6379> zrem zset1 one
    (integer) 1
    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "seven"
    4) "2"

    zincrby:如果在名称为key的zset中已经存在元素member,则该元素的score增加increment,否则向该集合中添加该元素,其score的值为increment.即对元素的顺序号进行增加或减少操作。(用法:zincrby 有序集合 increment 指定的元素值)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "seven"
    4) "2"
    127.0.0.1:6379> zincrby zset1 5 seven
    "7"
    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "seven"
    4) "7"

    zrank:返回名称为key的member元素的排名(按score从小到大排序)即下标。(用法:zrank 有序集合 指定的元素值),返回值为指定的元素值的索引下标号。

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "seven"
    4) "7"
    127.0.0.1:6379> zrank zset1 seven
    (integer) 1

    zrevrank:返回名称为key的member元素的排名(按score从大到小排序)即下标。(用法:zrank 有序集合 指定的元素值)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "seven"
    4) "7"
    127.0.0.1:6379> zrevrank zset1 seven
    (integer) 0

    zrange:显示集合中指定下标的元素值(按score从小到大排序)。如果需要显示元素的顺序编号,带上withscores。(用法:zrange 有序集合  下标索引1 下标索引2 withscores)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"
    7) "seven"
    8) "7"

    zrevrange:显示集合中指定下标的元素值(按score从大到小排序)。如果需要显示元素的顺序编号,带上withscores。(用法:zrevrange 有序集合  下标索引1 下标索引2 withscores)

    127.0.0.1:6379> zrevrange zset1 0 -1 withscores
    1) "seven"
    2) "7"
    3) "one"
    4) "3"
    5) "five"
    6) "2"
    7) "two"
    8) "1"

    zrangebyscore:显示指定范围顺序编号的元素(按score从小到大排序)。(用法:zrangebyscore 有序集合 顺序编号1 顺序编号2 withscores)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"
    7) "seven"
    8) "7"
    127.0.0.1:6379> zrangebyscore zset1 2 7 withscores
    1) "five"
    2) "2"
    3) "one"
    4) "3"
    5) "seven"
    6) "7"

    zcount: 返回集合中score在给定区间的数量。(用法:zcount 有序集合 顺序编号1 顺序编号2) 

    127.0.0.1:6379> zcount zset1 2 7
    (integer) 3

    zcard:返回集合中元素个数。(用法:zcard 有序集合)

     127.0.0.1:6379> zrange zset1 0 -1
    1) "two"
    2) "five"
    3) "one"
    4) "seven"
    127.0.0.1:6379> zcard zset1
    (integer) 4

    zremrangebyrank:删除集合中排名在给定区间的元素。(按索引下标删除)(用法:zremrangebyrank 有序集合 索引编号1 索引编号2) 

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"
    7) "seven"
    8) "7"
    127.0.0.1:6379> zremrangebyrank zset1 3 3
    (integer) 1
    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"

    zremrangebyscore:删除集合中score在给定区间的元素(按顺序score值来删除)。(用法:zremrangebyscore 有序集合 顺序编号1 顺序编号2)

    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"
    7) "seven"
    8) "7"
    127.0.0.1:6379> zremrangebyscore zset1 5 7
    (integer) 1
    127.0.0.1:6379> zrange zset1 0 -1 withscores
    1) "two"
    2) "1"
    3) "five"
    4) "2"
    5) "one"
    6) "3"

  • 相关阅读:
    函数的参数设置
    定义函数
    使用dict和set
    (转)set集合的应用
    循环与range
    if语句
    How to use git hub
    Install pyodbc in OpenSUSE
    Ubuntu编译安装PHP7
    Ubuntu为已经安装的PHP7单独编译mysqli
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7250970.html
Copyright © 2020-2023  润新知