redis 理解
Posted chuliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 理解相关的知识,希望对你有一定的参考价值。
1、字符串的数据结构有字段 free标志可用空间,len标志当前总长度(使得获取长度的算法为O(1)),buf指向实际字符串数组。这样只有当追加的字符串长度大于free了,才会进行空间再分配,再分配的原则是:
多分配一倍的、不大于1m的多余空间。这样追加N次长度,最多只会重新分配N次而不是一定分配N次。
2、链表的数据结构:head,tail两个指针,len是长度。head和tail中间的节点是双向的,但是是无环的。
3、字典的数据结构:一个type和privdata标志先不管,一个dictht数组,容量为2,指向两个dictht,就是两个hash表的数据结构,之所以有两个是为了rehash(相当于hashmap中的resize)的时候使用。
其中dictht的数据结构:table指针指向一个数组,size是表长度,sizemark掩码为size-1,used记录节点entry的数量
其中entry的数据结构:一个指针指向key;有一个union指向一个对象,对象中有指针指向value,还有一些int64的标志;还有一个指针next指向下个节点
4、
以上是关于redis 理解的主要内容,如果未能解决你的问题,请参考以下文章