当前位置: 首页 > news >正文

安平县外贸网站建设成都旅游学院简介

安平县外贸网站建设,成都旅游学院简介,wordpress 时间轴主题,高端品牌网站建设在哪济南兴田德润优惠吗Redis的字典使用哈希表作为底层实现#xff0c;一个哈希表里面可以有多个哈希表节点#xff0c;而每一个哈希表节点就保存了字典中的一个键值对 redis字典所使用的哈希表由dict.h/dictht typedef struct dictht{//哈希表数组dictEntry **table;//哈希表大小unsigned long si… Redis的字典使用哈希表作为底层实现一个哈希表里面可以有多个哈希表节点而每一个哈希表节点就保存了字典中的一个键值对 redis字典所使用的哈希表由dict.h/dictht typedef struct dictht{//哈希表数组dictEntry **table;//哈希表大小unsigned long size;//哈希表大小掩码用于计算索引值//总是等于size-1unsigned long sizemask;//该哈希表已有节点的数量unsigned long used; }dictht; table 属性是一个数组 数组中的每个元素都是一个指向 dict.h/dictEntry 结构的指针 每个 dictEntry 结构保存着一个键值对。 size 属性记录了哈希表的大小 也即是 table 数组的大小 而 used 属性则记录了哈希表目前已有节点键值对的数量。 sizemask 属性的值总是等于 size - 1  这个属性和哈希值一起决定一个键应该被放到 table 数组的哪个索引上面。 哈希表节点   typedef struct dictEntry {// 键void *key;// 值union {void *val;uint64_t u64;int64_t s64;} v;// 指向下个哈希表节点形成链表struct dictEntry *next;} dictEntry; key 属性保存着键值对中的键 而 v 属性则保存着键值对中的值 其中键值对的值可以是一个指针 或者是一个 uint64_t 整数 又或者是一个 int64_t 整数。 next 属性是指向另一个哈希表节点的指针 这个指针可以将多个哈希值相同的键值对连接在一次 以此来解决键冲突collision的问题。 举个例子 图 4-2 就展示了如何通过 next 指针 将两个索引值相同的键 k1 和 k0 连接在一起。 字典 typedef struct dict {// 类型特定函数dictType *type;// 私有数据void *privdata;// 哈希表dictht ht[2];// rehash 索引// 当 rehash 不在进行时值为 -1int rehashidx; /* rehashing not in progress if rehashidx -1 */} dict; type 属性和 privdata 属性是针对不同类型的键值对 为创建多态字典而设置的 type 属性是一个指向 dictType 结构的指针 每个 dictType 结构保存了一簇用于操作特定类型键值对的函数 Redis 会为用途不同的字典设置不同的类型特定函数。而 privdata 属性则保存了需要传给那些类型特定函数的可选参数。 typedef struct dictType {// 计算哈希值的函数unsigned int (*hashFunction)(const void *key);// 复制键的函数void *(*keyDup)(void *privdata, const void *key);// 复制值的函数void *(*valDup)(void *privdata, const void *obj);// 对比键的函数int (*keyCompare)(void *privdata, const void *key1, const void *key2);// 销毁键的函数void (*keyDestructor)(void *privdata, void *key);// 销毁值的函数void (*valDestructor)(void *privdata, void *obj);} dictType; ht 属性是一个包含两个项的数组 数组中的每个项都是一个 dictht 哈希表 一般情况下 字典只使用 ht[0] 哈希表 ht[1] 哈希表只会在对 ht[0] 哈希表进行 rehash 时使用。 除了 ht[1] 之外 另一个和 rehash 有关的属性就是 rehashidx  它记录了 rehash 目前的进度 如果目前没有在进行 rehash 那么它的值为 -1 。 解决键冲突 采用的是链地址法 举个例子 假设程序要将键值对 k2 和 v2 添加到下图 所示的哈希表里面 并且计算得出 k2 的索引值为 2  那么键 k1 和 k2 将产生冲突 而解决冲突的办法就是使用 next 指针将键 k2 和 k1 所在的节点连接起来 如图 下下图所示。
http://www.hkea.cn/news/14395720/

相关文章:

  • 西安咪豆网站建设公司轻骑铃木摩托车官网
  • 校园网站建设网重庆网站seo分析
  • 企业网站建设方案书怎么写谷歌商店下载官方
  • 河南省建设厅网站公示公告买域名去哪个网站
  • 石家庄外贸网站建设公司做网站一个程序员够吗
  • 创意广告设计网站在猪八戒做网站有保障吗
  • 同仁微网站建设工作室做跨境的网站
  • 网站建设 食品php+mysql网站开发全程实例pdf
  • 网站建设研究方法wordpress和e
  • 3g 手机网站建网站的软件优帮云
  • 网站上怎么做推广比较好呢奉贤网页设计
  • Windows怎么建设网站宁波教育平台网站建设
  • 网站备案如何申请公司制作网站需要
  • 做网站需要的语言专门做装修的网站有哪些
  • 温州市城乡建设建档案馆网站做选择的网站首页
  • 网站设计原则的历史网上商城 网站
  • wordpress整站迁移电商网站开发ppt
  • 网站内容建设运维服务器深圳论坛网站设计哪家公司好
  • 网站建设教程 第十课 cf战队网站制作教程和源码网站顶部伸缩广告
  • 网站建设及规划方案怎么做微拍网站
  • 市场营销网站建设wordpress cue插件
  • 科技让生活更美好作文450字seo博客写作
  • 海珠区做网站的公司微信上怎么开店
  • 猎场第几集做的网站推广注册网站时应注意什么
  • 白城网站开发成都网页设计与网站建设
  • 飞扬动力网站建设九江做网站的公司
  • 赤坎手机网站建设公司计算机应用技术(网站开发)
  • 网站建设安全协议小网站关键词搜什么
  • 制作百度移动网站模板wordpress35
  • 鲁权屯网站建设织梦移动端网站怎么做