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

【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增量迭代元素
http://www.xdnf.cn/news/2332.html

相关文章:

  • 本安型交换机 + TSN:煤矿智能化的关键拼图
  • 2025蓝桥杯省赛网络安全组wp
  • 无人机超声波避障技术要点与难点!
  • 火语言RPA--钉钉群通知
  • 【Web API系列】深入解析 Web Service Worker 中的 WindowClient 接口:原理、实践与进阶应用
  • LCD1602液晶显示屏详解(STM32)
  • Python爬虫(8)Python数据存储实战:JSON文件读写与复杂结构化数据处理指南
  • 纯净无噪,智见未来——MAGI-1本地部署教程,自回归重塑数据本质
  • Redis03-基础-C#客户端
  • Hyper-V安装Win10系统,报错“No operating system was loaded“
  • Java大厂面试突击:从Spring Boot自动配置到Kafka分区策略实战解析
  • Java详解LeetCode 热题 100(01):LeetCode 1. 两数之和(Two Sum)详解
  • UEC++第13天| 字体集、UEC中的 -> :: .
  • Linux操作系统从入门到实战(四)Linux基础指令(下)
  • 【嵌入式八股22】排序算法与哈希算法
  • 接口中直接获取HttpServletRequest打印日志
  • WinForm真入门(17)——NumericUpDown控件详解
  • 【JavaScript】关系运算符--非数值类型、Unicode编码表
  • BG开发者日志0427:故事的起点
  • android ams调试指令介绍
  • 【数据结构】·励志大厂版(复习+刷题):二叉树
  • 从零搭建云原生后端系统 —— 一次真实项目实践分享
  • django admin 中更新表数据 之后再将数据返回管理界面
  • python+flask+flask-sockerio,部署后sockerio通信异常
  • vue中将html2canvas转成的图片传递给后台 Python Flask 服务
  • C#中属性和字段的区别
  • 毕业设计-基于机器学习入侵检测系统
  • Java学习手册:Java开发常用的内置工具类包
  • c语言知识整理
  • ADC单通道采集实验