Redis设计与实现(二)链表
由于C语言总没有链表这玩意所以Redis自己实现了一个链表。链表的好处就不用多说了,和数组配合是一对雌雄双股剑。
链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表,列表中的元素很多,又基本都是长字符串的时候,就会使用到链表这一结构。
integers列表键的底层实现就是一个链表,链表中的每个节点都保存了一个整数值,redis本身还使用链表来保存多个客户端的状态信息。包括发布,订阅,监视器,慢查询等都是通过链表来进行实现的。
链表有多种,在redis中实现的是一个双链表的数据结构,在redis中列表如果使用的链表来进行表示的话,结构如下图所示:
另外的一个细节redis中的链表是一个头尾巴节点都为null的,无环节点。
smartcat.994