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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa3 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k4 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦4 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL5 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·5 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德5 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫6 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i6 小时前
完全卸载MariaDB
数据库·mariadb
期待のcode6 小时前
Redis的主从复制与集群
运维·服务器·redis