zoukankan      html  css  js  c++  java
  • redis4. dict字典

    基础数据结构:

     (注意dict是字典,dict->type是相关函数指针, dict->type->keyDup是执行该方法)

    具体调用链路:

    渐进式rehash:

     新增/删除时:

     

     查询时:

     

    都会进行rehash

    所以当dict数据量大的时候,在扩容时,可能会影响set/get的rt

    GOOD:https://blog.csdn.net/belalds/article/details/93713491

    size 空间大小,used 已使用

     总体过程:

    步骤1:判断是否要扩容:

     步骤2:渐进式扩容前准备:

     准备方法:

     

    步骤3:在增删改查时进行部分rehash工作:

    每次增量式的数量:

    数量为 1* 10:

     这里指的数量(或者说bucket),是指数组元素的个数,每个元素即为一个链表。

    可见,当字典数据量大时,假设1000万数据,1:1的情况,那么需要100万次操作才能rehash万。

     

     系统帮助是每次 100 * 10 = 100个数组元素:

     

    问题:

  • 相关阅读:
    python高级语法
    python的内置类型
    Python现状
    前端项目技术栈
    1.22
    类型转换!
    文件上传下载!
    Struts2的Ognl详解
    第二章复习
    解耦和耦合
  • 原文地址:https://www.cnblogs.com/do-your-best/p/11903454.html
Copyright © 2011-2022 走看看