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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
深蓝轨迹13 小时前
Spring Data JPA 实战指南:从基础配置到高级技巧
数据库·oracle·spring data jpa
爱喝水的鱼丶13 小时前
SAP-ABAP:SAP 与 ABAP 关联逻辑与入门路径:业务×开发的协作指南
服务器·前端·数据库·学习·sap·abap
MandalaO_O13 小时前
SQL 注入
数据库·oracle
eggrall13 小时前
MySQL表的操作
数据库·mysql
wearegogog12313 小时前
MATLAB椭圆参数检测算法实现
数据库·算法·matlab
福娃筱欢13 小时前
金仓数据库同步延迟告警处理步骤
数据库
2301_7815714214 小时前
JavaScript中Object-getOwnPropertySymbols获取方法
jvm·数据库·python
庞轩px14 小时前
第四篇:RDB与AOF持久化——宕机后数据怎么恢复?
redis·缓存·持久化·aof·rdb·宕机·恢复数据
jump_jump15 小时前
Drizzle 凭什么贴着 Go 跑——从设计哲学到热路径源码
数据库·性能优化·orm
jay神15 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统