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 2022-07-12 23:15  小破孩楼主  阅读(271)  评论(0编辑  收藏  举报