以lpush为例进行探索发现:

Redis源码 - list结构_链表

 

 

Redis源码 - list结构_链表_02

 

 

Redis源码 - list结构_双向链表_03

 

 

Redis源码 - list结构_redis List结构_04

 

 

Redis源码 - list结构_双向链表_05

 

 

Redis源码 - list结构_其他_06

 

 

Redis源码 - list结构_两个指针_07

 

 

Redis源码 - list结构_两个指针_08

 

Redis源码 - list结构_双向链表_09

 

 从上面的实现过程就看出来了,hash主要通过ziplist和quicklist来共同处理,ziplist的本质是一段连续的空间,而quicklist结构的本质是一个双向链表结构。通过head和tail两个指针分别对应链表的头和尾,这样就可以快速的进行相关操作。

 

名为小兵 不忘初心