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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
让我上个超影吧14 小时前
【MYSQL】索引下推
java·数据库·mysql
m0_6315298214 小时前
CSS如何利用Less快速生成颜色渐变背景_使用混合函数生成多样渐变
jvm·数据库·python
重生之我是Java开发战士14 小时前
【MySQL】 索引的底层原理与使用:B+树、数据页与 InnoDB
数据库·b树·mysql
m0_6245785914 小时前
Laravel Blade 中高效筛选并限制关联分类数据的实践方案
jvm·数据库·python
超级无敌葛大侠14 小时前
Redis里RDB和AOF的区别
java·redis
m0_5913647314 小时前
golang如何实现coredump分析_golang coredump分析实现策略
jvm·数据库·python
玩代码的老秦14 小时前
后端php连接SQL Server数据库报错解决方案
开发语言·数据库·php
Rust研习社14 小时前
Rust 高性能内存缓存 moka 完全指南
开发语言·后端·缓存·rust
2401_8314194414 小时前
golang如何实现分布式对象存储_golang分布式对象存储实现攻略
jvm·数据库·python
2601_9498179214 小时前
nginx 代理 redis
运维·redis·nginx