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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
Chasing__Dreams几秒前
Redis--基础知识点--29--HyperLogLog
数据库·redis·缓存
weixin_58061400几秒前
SQL如何统计分组内的最高和最低值_MAX与MIN聚合应用
jvm·数据库·python
baidu_340998823 分钟前
JavaScript中函数调用的四种模式及其this绑定优先级表
jvm·数据库·python
吕源林4 分钟前
SQL在JOIN语句中过滤非必要字段_减少传输开销与查询执行时间
jvm·数据库·python
qq_424098568 分钟前
如何在 Go 方法中正确修改切片类型
jvm·数据库·python
qq_334563559 分钟前
如何利用分区进行并行DML_开启会话并行针对不同分区同时执行更新
jvm·数据库·python
绩隐金10 分钟前
SQL Server 开发系列(第八期):事务与并发控制(开发视角)——避免死锁与数据异常
数据库
z44247532611 分钟前
如何高效进行堆叠分类器的超参数调优:解决 GridSearchCV 卡顿问题
jvm·数据库·python
2301_7751481515 分钟前
如何操作 XML 数据_XMLTYPE 与 EXTRACT 函数解析节点
jvm·数据库·python
2402_8548083715 分钟前
怎么利用Navicat进行调整备份文件压缩等级_详细配置与操作步骤
jvm·数据库·python