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 理解的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Redis系列

redis持久化redis持久化理解

对于redis底层框架的理解

redis分页查询理解

redis的理解

redis cluster集群理解