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

Redis数据类型与内部编码

在Redis中通常普遍认为,使用redis的能进行查询,插入,删除,修改操作都是O(1)是因为他是利用hash表实现的,但是,背后的实现不一定是一个标准的hash表,它内部的数据类型还会有变数,不过仍然能保证时间复杂度符合承诺。

在面对不同的场景,redis会进行特定的优化,不同的数据类型(value值)的实现会有不同的内部编码格式,如下表所示。

string

raw:最基本的字符串。(底层就是一个C++的char数组,或者Java的byte数组)

int:当value是整数的时候,此时redis可能会直接使用int来保存。

embstr:针对短字符串进行的特殊优化。

hash

hashtable:最基本的hash表。(不是Java标准库中的HashTable)

ziplist:压缩列表,能够节省空间,在hash表元素比较少的时候,可能就会优化成ziplist。

list

linkedlist:最基本的链表。

ziplist:压缩列表。

!!!注意:从redis3.2开始,引入了新的实现方式quicklist,结合两者优点来替代上面两种方式,但ziplist任然存在。

set

hashtable:最基本的hash表。

intset:集合中存的都是整数

zset

skiplist:跳表,跳表也是链表,不同于普通的链表,每个节点上有多个指针域。(类似于经典题目“随机链表的复制”力扣138题)

ziplist:压缩列表。

如果想要知道当前的key是什么编码方式可以使用object encoding key来查询。

对于上面的数据类型采用的哪种编码方式,最重要的是能知道思想,而不用去记数字。

http://www.dtcms.com/a/295386.html

相关文章:

  • 国产数据库拐点已至:电科金仓用“融合+AI”重新定义下一代数据底座
  • rustfs/rustfs基于 Rust 的高性能分布式存储系统
  • 进程通信----匿名管道
  • 进阶向:基于Python的本地文件内容搜索工具
  • 加入淘宝联盟内容库,以便在B站等平台被推广
  • 我的新项目又来咯!
  • iOS 抓包工具有哪些?按能力划分的实用推荐与使用心得
  • 开发运维DevOps(附电子书资料)
  • 办公自动化入门:如何高效将图片整合为PDF文档
  • 7月25日 矩阵起源亮相深圳DA数智大会,解读多模态大模型驱动的数据处理新方法
  • 如何保证GPFS文件系统的强一致性
  • PDF转Markdown - Python 实现方案与代码
  • Go进阶高并发(多线程)处理教程
  • 中小企业安全落地:低成本漏洞管理与攻击防御方案
  • 新手操作steam搬砖项目,应该如何快速起步
  • 图机器学习(19)——金融数据分析
  • 深度分析Java类加载机制
  • 医疗AI轻量化部署方案的深度梳理与优化路径判研
  • k8s把某个secret挂在某命名空间下
  • MySQL深度理解-MySQL事务优化
  • 现代C++的一般编程规范
  • 【CMake】CMake 常用语法总结
  • SSP通过SDK对接流量的原理与实现
  • SSM之表现层数据封装-统一响应格式全局异常处理
  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的位置细胞对NLP中的深层语义分析的积极影响和启示
  • 大模型处理私有数据的核心技术
  • 《R 矩阵》
  • 基础NLP | 02 深度学习基本原理
  • Unity 多人游戏框架学习系列九
  • RocketMQ搭建及测试(Windows环境)