小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作。当时我们提到Redis的键值对不仅仅是字符串。而这次我们就要介绍Redis的第二个数据结构了,List(链表)。由于List在原理上的实现并不是特别的复杂,我们在这里将原理和具体的命令都放在一起介绍。 ...
小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作。当时我们提到Redis的键值对不仅仅是字符串。而这次我们就要介绍Redis的第二个数据结构了,List(链表)。由于List在原理上的实现并不是特别的复杂,我们在这里将原理和具体的命令都放在一起介绍。
小喵的个人博客地址: http://www.miaoerduo.com/ ,欢迎随时骚扰~
该博客原地址: http://www.miaoerduo.com/redis/三、redis基本操作-list.html ,排版应该更精美一点。
Redis基本操作——List(原理篇)
学习过数据结构的同学,一定对链表(Linked List)十分的熟悉。相信我们自己也曾经使用过这种数据结构。
链表分为很多种:单向链表,双向链表,循环链表,块状链表[1]等等。
链表的作用也有很多。首先,链表可以存放数据。其次链表可以模拟队列、堆栈等其他的数据结构。
链表的实现也有多种,以C语言为例,最常见的是构造节点node,node中又有指针,用于指向下一个node,这样就构成了单向链表,如果node中有两个指针,分别指向前一个和后一个node,则构造了双向链表,再如果链表是首尾相连的,那么就是循环链表。链表的具体算法,是数据结构里面的内容,我们这里就不专门介绍啦。
那么,Redis内部的List是什么样子的链表呢?又是怎么来维护的呢?
我们慢慢的剖析。
1 typedef struct listNode { 2 3 // 前置节点 4 struct listNode *prev; 5 6 // 后置节点 7 struct listNode *next; 8 9 // 节点的值10 void *value;11 } listNode;
原标题:三、Redis基本操作——List
关键词:Redis
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。