Redis五大基本数据类型之Zset类型

一、Zset类型数据的基本操作

1.1 Zset类型数据的基本性质

  1. Set的基础上增加了一个值,用于排序
  2. Zset是一个有序集合

    1.2 Zset类型数据的基本命令

  3. zadd key index1 member1 ... indexn membern:向有序集合keyindexi的位置添加元素memberi

    1. 127.0.0.1:6379> zadd myset 1 one 2 two 3 three
    2. (integer) 3
  4. zrange key start stop [withscores]:查询有序集合key中的所有元素

    1. [withscores]表示将对应的score一起打印出来
      1. 127.0.0.1:6379> zrange myset 0 -1
      2. 1) "one"
      3. 2) "two"
      4. 3) "three"
  5. 排序

    1. zrangebyscore key min max [withscores]:将有序集合key按照从小到大排序

      1. -inf+inf分别表示负、正无穷
      2. [withscores]表示将对应的score一起打印出来
        1. 127.0.0.1:6379> zadd salary 1000 xiaohe 500 xiaoyao 2000 xiaoni
        2. (integer) 3
        3. 127.0.0.1:6379> zrangebyscore salary -inf +inf
        4. 1) "xiaoyao"
        5. 2) "xiaohe"
        6. 3) "xiaoni"
        7. 127.0.0.1:6379> zrangebyscore salary -inf +inf withscores
        8. 1) "xiaoyao"
        9. 2) "500"
        10. 3) "xiaohe"
        11. 4) "1000"
        12. 5) "xiaoni"
        13. 6) "2000"
    2. zrevrangebyscore key max min [withscores]:将有序集合key按照从大到小排序

      1. -inf+inf分别表示负、正无穷
      2. [withscores]表示将对应的score一起打印出来
        1. 127.0.0.1:6379> ZREVRANGEBYSCORE salary +inf -inf withscores
        2. 1) "xiaoni"
        3. 2) "2000"
        4. 3) "xiaohe"
        5. 4) "1000"
        6. 5) "xiaoyao"
        7. 6) "500"
  6. 移除元素

    1. zrem key member1 ... membern:移除有序集合key中的元素memberi
      1. 127.0.0.1:6379> zrange salary 0 -1
      2. 1) "xiaoyao"
      3. 2) "xiaohe"
      4. 3) "xiaoni"
      5. 127.0.0.1:6379> zrem salary xiaoni xiaoyao
      6. (integer) 2
      7. 127.0.0.1:6379> zrange salary 0 -1
      8. 1) "xiaohe"
  7. zcard key:查询有序集合key中的内容数

    1. 127.0.0.1:6379> zcard salary
    2. (integer) 1
  8. zcount key min max:获取有序集合keyminmax的区间内的成员数

    1. 127.0.0.1:6379> zadd myset 1 a 2 b 3 c 4 d
    2. (integer) 4
    3. 127.0.0.1:6379> zcount myset 1 4
    4. (integer) 4
    5. 127.0.0.1:6379> zcount myset 1 3
    6. (integer) 3
  9. 更多命令见官方文档

    1.3 Zset使用场景

  10. Set排序、班级成绩排序、工资表排序等

  11. 设置消息权重,优先处理高优先级的消息
  12. 排行榜应用实现,取Top N