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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
Unstoppable226 分钟前
八股训练营第 21 天 | Redis的数据类型有哪些?Redis是单线程的还是多线程的,为什么?说一说Redis持久化机制有哪些?
数据库·redis·缓存·八股
q***61506 分钟前
【数据库】MySQL的安装与卸载
数据库·mysql·adb
无心水8 分钟前
【分布式利器:Redis】Redis基本原理详解:数据模型、核心特性与实战要点
数据库·redis·缓存·数据模型·i/o多路复用·redis高并发·redis基本原理
大头an10 分钟前
Redis内存碎片深度解析:从动态整理到核心运维实践
数据库·redis
倔强的石头_1 小时前
openGauss数据库:从CentOS 7.9部署到实战验证
数据库
i***27951 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
2501_941236211 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
Deamon Tree1 小时前
kafka延迟队列是怎么实现的
数据库·kafka·linq
o***36931 小时前
【玩转全栈】----Django基本配置和介绍
数据库·django·sqlite
2501_941111342 小时前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python