【Redis】zset类型

目录

  • 1、介绍
  • 2、底层实现
    • 【1】压缩列表
    • 【2】跳跃表+哈希表
  • 3、常用命令

1、介绍

有序集合结合了集合和有序列表的特性,每个元素都会关联一个分数,Redis正是通过这个分数来为集合中的成员进行排序。

2、底层实现

【1】压缩列表

适用条件

1、元素数量 ≤ zset-max-ziplist-entries(默认128个)
2、每个元素的成员长度 ≤ zset-max-ziplist-value(默认64字节)

结构特点

1、连续内存存储,每个元素由相邻节点组成(成员和分数),按分数升序排列
2、插入/删除需遍历并移动数据,时间复杂度为O(N),适用于小规模数据的高效内存利用

【2】跳跃表+哈希表

适用条件

1、当数据规模超过阈值时,就切换为跳跃表和哈希表存储

结构特点

1、哈希表存储member->score映射(O(1)查询)
2、跳跃表按score升序存储

3、常用命令

命令 语法 作用
ZADD ZADD key score member [score member …] 添加元素
ZREM ZREM key member [member …] 删除元素
ZSCORE ZSCORE key member 获取元素分数
ZRANK ZRANK key member 获取元素升序排名
ZREVRANK ZREVERANK key member 获取元素降序排名
ZCARD ZCARD key 获取结合元素数量
ZCOUNT ZCOUNT key min max 统计分数区间元素数
ZRANGE ZRANGE key start stop 按升序返回区间元素
ZREVRANGE ZREVRANGE key start stop 按降序区间返回区间元素
ZRANGEBYSCORE ZRANGEBYSCORE key min max 返回分数区间元素
ZREVRANGEBYSCORE ZREVRANGEBYSCORE key max min 反向返回分数区间元素
ZINCRBY ZINCRBY key increment member 增加元素分数
ZPOPMAX ZPOPMAX key 删除并返回最高分元素
ZPOPMIN ZPOPMIN key 删除并返回最低分元素
ZUNIONSTORE ZUNIONSTORE dest numkeys key [key …] 并集计算存储
ZINTERSTORE ZINTERSTORE dest numkeys key [key …] 交集计算存储
ZSCAN ZSCAN key cursor 增量迭代元素

你可能感兴趣的:(Redis,redis)