redis hash的底层是压缩列表 和  哈希表两种形式 ,哈希表的形式是下面这样一层层嵌套的 , 转载自公众号 CodeSheep 

 

 

 

源码中这几种类型的定义

 

 

 这里面的哈希结点dictEntry使用链地址法解决哈希冲突问题

 

 

 字典dict里存了两个哈希表dictht , 用于处理rehash过程 , 哈希表的扩展和收缩

 

 

 redis其他几种类型 , k- v结构也是利用的哈希表 ,  因此查询时候的时间复杂度是O(1)