随笔 - 832  文章 - 2  评论 - 31  阅读 - 167万

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

posted on   小破孩楼主  阅读(279)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源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 事务传播行为
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示