4.Redis数据类型的编码方式

数据结构和内部编码

type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合),但这些只是 Redis 对外的数据结构。

Redis 底层在实现上述数据结构的时候,会在源码层面,针对上述实现进行特定的优化,来达到节省 时间 / 空间 的效果

其中内部的具体实现的数据结构(编码方式不同)还有变数。

redis 承诺,现在当前有一个 hash 表,你可以进行 查询,插入,删除操作都保证时间复杂度为O(1),但是这个背后的实现不一定就是一格标准的hash表,可能在特定场景下,使用别的数据结构实现,但是仍然保证时间复杂度符合要求。

数据结构:redis 承诺给你使用的,可以理解成数据类型

编码方式:redis 内部底层的实现

同一个数据类型,背后可能的编码实现方式是不同的,会根据特定场景优化,其中不同数据类型对应的具体实现具体大致如下图所示:

例如下图创建了不同的数据类型,可以发现下图中几种key都被优化成其他类型了。

相关推荐
泯仲2 小时前
从零起步学习MySQL 第十二章:MySQL分页性能如何优化?
数据库·学习·mysql
IvorySQL2 小时前
直播预告|PostgreSQL 18.3 x IvorySQL 5.3:开启 AI 数据库新纪元
数据库·postgresql·开源
TDengine (老段)2 小时前
TDengine IDMP 组态面板 —— 创建组态
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
SelectDB2 小时前
Apache Doris + SelectDB:定义 AI 时代,实时分析的三大范式
大数据·数据库·数据分析
SelectDB2 小时前
OLAP 无需事务?Apache Doris 如何让实时分析兼具事务保障
大数据·数据库·mysql
代码的奴隶(艾伦·耶格尔)2 小时前
Hbase安装与使用
大数据·数据库·hbase
是梦终空1163 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
NineData3 小时前
AI 时代的数据对比:DBA 还需要盯着屏幕看差异吗?
数据库·人工智能·dba·数据库管理工具·数据一致性·数据对比·异构迁移
原来是猿3 小时前
MySQL【基本查询上 - 表的增删改查】
数据库·mysql
咖啡の猫3 小时前
Redis命令-Hash命令
redis·php·哈希算法