1.其中,存储返回数据库中表示的特定整数。存储库中所有的键值数据。s跟踪每个键的过期时间。
服务器初始化时,会预先分配16个数据库(这个数量可以通过配置文件配置),所有数据库都保存到数组的成员中。进入redisServer结构。当我们选择选定的数据库数量时,程序直接通过[number]来交换数据库。有时,当程序需要知道它位于哪个数据库时,可以直接读取。3.既然我们知道所有的键值都存储在中,那么我们需要知道是否找到了键的位置,所以有必要了解一下。structdict:
typedefstructdict{
//类型特定的处理函数
dictType*type;
//私有数据类型处理function
privdata*void;
//画表(2)
dicttht[2];
//记录Progresscoderehash,值为-1表示未进行rehash
intrehashidx;
//当前工作的受保护迭代器数量
Intiterators;
}说;
上面的结构可以看出,返回表采用了下拉表作为实现。该类型使用两个指针来检索表。0(ht[0])主要用来存储数据库的所有键值,而1号减表主要用来编写减1号的程序。0.它是用rehash表设置的。在这种情况下,在返回中搜索键实际上是在所述结构中搜索ht[0]。4.返回一个链表来存储多个碰撞键。也就是说,在链表中查找到key的哈希值后,如果链表的长度大于1,那么我们需要遍历链表来找到我们要找的key。当然,一般情况下,链表的长度为1,所以时间复杂度o可以考虑为(1)。
2.
知道了上面的知识,我们就可以分析是否在内存中找到了返回键。
1。0为空。需要重新散列,因为如果执行重新散列,则必须替换两个表中的键。键,此处为空值和运行字典。
5。0】将进行调查,将再次进行审判。如果不勾选,key将直接在内存中结束
上一篇:redis内存默认多大
下一篇:redis内存设置多少合适