Redis第七讲 Redis存储模型详解
2023-09-11 14:16:28 时间
Redis存储模型
每次在Redis数据库中创建一个键值对时,至少会创建两个对象,一个是键对象,一个是值对象,而Redis中的每个对象都是由 redisObject 结构来表示.redisObject的结构与对象类型、内存编码、内存回收、共享对象都有关系,一个redisObject对象的大小为16字节:4bit+4bit+24bit+4Byte+8Byte=16Byte。
typedef struct redisObject{
unsigned type:4; //对象类型
unsigned encoding:4; //内部编码
unsigned lru: REDIS_LRU_BITS; //记录最后一次被程序访问的时间 lru time (relative to server.lruLock) 计数时钟
int refcount; //引用计数器
void *ptr; //指向底层数据结构的指针
}robj
-
type对象类型:type字段表示对象的数据类型,占据4个bit,当我们执行type object指令时可以查看相应的类型;
-
encoding内部编码类型:encoding表示对象的内部编码,占4个bit。redis支持的各种数据类型,每种至少存在两种内部编码,比如string存在int、embstr、raw三种类型编码,list存在ziplist、linkedlist两种类型编码。每种类型存在多种不同编码的好处在于可以根据不同的使用场景自动切换内部不同的编码来提高效率,大大的提高了灵活性,也做到了解耦用户和底层编码优化。我们可以通
相关文章
- 基于redis集群实现的分布式锁,可用于秒杀,定时器。
- 15天玩转redis —— 第十一篇 让你彻底了解RDB存储结构
- Redis用户会线下分享活动
- redis实现与分析
- Redis学习(2)-redis安装
- Redis Cluster集群
- thinkphp: 用redis存储短信验证码(thinkphp v6.0.12LTS)
- Redis未授权+CVE-2019-0708组合拳利用
- Java操作redis
- thinkphp: 用redis存储短信验证码(thinkphp v6.0.12LTS)
- Redis 高性能IO模型:为什么单线程Redis能那么快?
- 流式计算框架Storm网站访问来源实时统计及存储到redis代码示例
- Atitit 数据库映射到redis存储的模式 1. 常规 每条db记录映射一个redis记录1 1.1. 表名:主键为key ,记录序列化为json为val1 2. 每个字段映射一个redi
- SAP系统和微信集成的系列教程之七:使用Redis存储微信用户和公众号的对话记录
- 微信开发系列之七 - 使用Redis存储微信聊天记录
- spring-java项目中连接redis数据库
- ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
- 【服务器安装Redis】Centos7离线安装redis
- 〖Python 数据库开发实战 - Python与Redis交互篇⑪〗- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis
- 〖Python 数据库开发实战 - Python与Redis交互篇⑫〗- 综合案例 - 新闻管理系统 - 删除新闻(含redis缓存)
- Windows下使用Redis(一)安装使用
- Redis源码之ZipList压缩列表
- redis分片机制学习
- redis_05 _ 内存快照:宕机后,Redis如何实现快速恢复
- Django 缓存 使用 Redis Memcached 为网站提速
- Redis核心知识点
- 05-Redis持久化、主从复制
- “位图(BitMaps):Redis中高效存储布尔类型数据的利器”
- protobuf 与 redis 的结合
- python redis 消息队列