当前位置: 首页 > news >正文

【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、常用命令

命令语法作用
ZADDZADD key score member [score member …]添加元素
ZREMZREM key member [member …]删除元素
ZSCOREZSCORE key member获取元素分数
ZRANKZRANK key member获取元素升序排名
ZREVRANKZREVERANK key member获取元素降序排名
ZCARDZCARD key获取结合元素数量
ZCOUNTZCOUNT key min max统计分数区间元素数
ZRANGEZRANGE key start stop按升序返回区间元素
ZREVRANGEZREVRANGE key start stop按降序区间返回区间元素
ZRANGEBYSCOREZRANGEBYSCORE key min max返回分数区间元素
ZREVRANGEBYSCOREZREVRANGEBYSCORE key max min反向返回分数区间元素
ZINCRBYZINCRBY key increment member增加元素分数
ZPOPMAXZPOPMAX key删除并返回最高分元素
ZPOPMINZPOPMIN key删除并返回最低分元素
ZUNIONSTOREZUNIONSTORE dest numkeys key [key …]并集计算存储
ZINTERSTOREZINTERSTORE dest numkeys key [key …]交集计算存储
ZSCANZSCAN key cursor增量迭代元素

相关文章:

  • go语言八股文(三)
  • 2个小时1.5w字| React Golang 全栈微服务实战
  • 新增29个专业,科技成为未来主赛道!
  • 04.通过OpenAPI-Swagger规范让Dify玩转Agent
  • Linux操作系统学习---进程地址空间
  • Zabbix
  • Clang中ext_vector_type和address_space __attribute__的使用
  • 《从分遗产说起:JS 原型与继承详解》
  • 测地型GNSS接收机_毫米高精度精准定位
  • NEPCON China 2025 | 具身智能时代来临,灵途科技助力人形机器人“感知升级”
  • 读写算杂志读写算杂志社读写算编辑部2025年第12期目录
  • 现场问题排查-postgresql某表索引损坏导致指定数据无法更新影响卷宗材料上传
  • 97A6-ASEMI无人机专用功率器件97A6
  • 【神经网络与深度学习】端到端方法和多任务学习
  • 2025系统架构师---事件驱动架构
  • Android10.0 Android.bp文件详解,以及内置app编写Android.bp文件
  • iOS自定义电池电量显示控件 BatteryView 实现
  • uniapp自定义一个选择年月日时分的组件。
  • SpringBoot驾校报名小程序实现
  • 重构数字信任基石:Java 24 网络安全特性的全维度革新与未来防御体系构建
  • 暴涨96%!一季度“中国游中国购”持续升温,还有更多利好
  • 加拿大今日大选:房价、印度移民和特朗普,年轻人在焦虑什么?
  • 人民时评:投资于人,促高质量充分就业
  • 加总理:目前没有针对加拿大人的“活跃威胁”
  • 【社论】用生态环境法典守护生态文明
  • 王一博赛车故障退赛冲上热搜,工作室回应:下次再战