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

数据结构和内部编码

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

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

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

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

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

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

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

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

相关推荐
明月_清风7 分钟前
🚀 Flyway 存量数据库迁移:50张表一键导出清洗实战(附完整脚本)
数据库·后端
羊小蜜.15 分钟前
Mysql 08: 数据表基本操作——从创建到约束
数据库·mysql·数据表
程序员小郭8316 分钟前
MySQL分库分表策略全解析(实战版)
数据库·mysql·架构
卓怡学长18 分钟前
m320基于Java的网络音乐系统的设计与实现
java·数据库·spring·tomcat·maven
雄哥00727 分钟前
linux redis升级⼿册-源码部署版
linux·运维·redis
爱浦路 IPLOOK42 分钟前
选对UPF网元供应商,解锁5G-A时代行业赋能新可能
运维·网络·数据库
列星随旋44 分钟前
基于 Redis + Lua,实现“多维度原子限流”(令牌桶 + 滑动窗口)
java·redis·lua
難釋懷1 小时前
Nginx本地缓存API
nginx·spring·缓存
Elastic 中国社区官方博客1 小时前
将 Logstash 管道从 Azure Event Hubs 迁移到 Kafka 输入插件
大数据·数据库·elasticsearch·microsoft·搜索引擎·kafka·azure
草莓熊Lotso1 小时前
MySQL 事务管理全解:从 ACID 特性、隔离级别到 MVCC 底层原理
linux·运维·服务器·c语言·数据库·c++·mysql