redis底层数据结构
一丶Redis底层结构
1. redis 存储结构
- redis的存储结构从外层往内层依次是redisDb、dict、dictht、dictEntry。
- redis的Db默认情况下有16个,每个redisDb内部包含一个dict的数据结构。
- redis的dict内部包含dictht的数组,数组个数为2,主要用于hash扩容使用。
- dictht内部包含dictEntry的数组,可以理解就是hash的桶,然后如果冲突通过挂链法解决
真正保存数据的核心数据结构, dictEntry **table可以理解为hash的桶,通过挂链法解决冲突。
存储数据的单个节点,包含key和value。保存我们存储在redis的数据。
-
2.redis 数据存储过程
数据存储过程以set为例作为说明,过程如下:
- 从redisDb当中找到dict,每个db就一个dict而已。
- 从dict当中选择具体的dictht对象。
- 首先根据key计算hash桶的位置,也就是index。
- 新建一个DictEntry对象用于保存key/value,将新增的entry挂到dictht的table对应的hash桶当中,每次保存到挂链的头部。
- dictSetKey的宏保存key
- dictSetVal的宏保存value
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2020-07-12 事务的七种传播行为(以代码为例,做个笔记)
2020-07-12 Spring Data JPA事务支持
2020-07-12 Spring 事务 -- @Transactional的使用
2020-07-12 Spring 事务传播行为