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

东台网站建设服务商做早餐的网站

东台网站建设服务商,做早餐的网站,网路神做网站怎么样,电商网站建设实训报告Redis系列之底层数据结构字典Dict Dict数据结构 Dict是Redis数据结构中使用最为频繁的复合型数据结构,本质上是一个哈希表 查看redis6.0版本的源码,链接:https://github.com/redis/redis/blob/6.0/src/dict.h 哈希表的结构定义&#xff1…

Redis系列之底层数据结构字典Dict

Dict数据结构

Dict是Redis数据结构中使用最为频繁的复合型数据结构,本质上是一个哈希表

查看redis6.0版本的源码,链接:https://github.com/redis/redis/blob/6.0/src/dict.h

哈希表的结构定义:

typedef struct dictht{//哈希表数组dictEntry **table;//哈希表大小unsigned long size;//哈希表大小掩码,用于计算索引值,总是等于 size-1unsigned long sizemask;//哈希表已有节点的数量unsigned long used;
}dictht

哈希表由数组table组成,table 中每个元素都是指向dictEntry这种数据结构,key用来保存键,val用来保存值,值可以是一个指针,也可以是uint64_t整数,也可以是int64_t整数

typedef struct dictEntry{//键void *key;//值union{void *val;uint64_tu64;int64_ts64;}v;//指向下一个哈希表节点,形成链表struct dictEntry *next;
}dictEntry

Dict在redis中的应用

在Redis中,Dict数据结构应该是使用最为频繁的复合型数据结构,除了在hash数据的会使用字典外,整个Redis的key和value也组成一个全局字典,Zset集合中存储value和score值的映射关系也是通过字典结构实现的

Redis的key和value映射使用dict

struct RedisDb{dict* dict;// all keys key=>valuedict* expires;...
}

zset中存储value和score值的映射关系,使用dict

struct zset {dict *dict; // all values value=>scorezskiplist *zsl;
}

Dict如何解决hash冲突

dict本质也是一种key、value结构的哈希表,所以就有哈希冲突的问题,如果学过java中hashmap的数据结构,应该知道解决哈希冲突,常见的方法有开放地址法和链地址法。redis中的dict采用的是链地址法,也可以说使用链表来解决hash冲突。redis 中的dict通过next指针,可以将多个哈希值相同的键值对连接起来,用来解决哈希冲突

在这里插入图片描述

Dict拓展知识点

  • redis中计算哈希值和索引值的方法
# 使用字典设置的哈希函数计算哈希值
hash = dict->type->hashFunction(key);
# 使用前面计算的哈希值hash和dict的sizemask计算索引值
index = hash & dict->ht[x].sizemask;
  • dict的扩容和收缩,dict保存的键值对太多或者太少时,会触发dictRehash操作,重新散列来对哈希表进行扩容或者收缩。注意dict的rehash操作是渐进式的,因为如果键值对数量过多,要进行rehash操作是很耗时的,所以redis采用渐进式rehash,分多次、渐进式完成rehash操作
  • hash冲突,redis dict哈希冲突的解决方法是采用链地址法,通过*next指针指向下一个具有相同索引值的hash表节点
http://www.yayakq.cn/news/186692/

相关文章:

  • 成品ppt网站宣威网站建设
  • 网站开发代做用div做网站中间部分
  • 定西营销型网站建设做外贸哪几个网站好
  • 济南城市建设集团 网站网页美工培训学校
  • 网站建设报价方案doc桂林二手房
  • ios网站开发免费建设网站领地
  • 外贸网站建设资料建设银行宁波分行网站
  • 如何查找做网站的服务商东莞招标网官网
  • 怎么做网站简单的wordpress素材模板
  • 网站优化需要工具新企业如何在国税网站上做套餐
  • 中山网站建设推广阿里巴巴外贸圈
  • 个人如何制作一个网站基于php的网站开发
  • 西宁网站建设的公司购物网站开发思路
  • 门户网站建设公司流程网站建设做网站多少钱
  • 网站建设价格明细表天津门头设计制作价格
  • 北京公司建网站一般需要多少钱php医疗网站咨询源码
  • 金融网站建设多少钱腾讯云 云服务器
  • 金融网站建设网爱站网功能
  • 在pc端网站基础上做移动端网站展现形式
  • wordpress企业建站视频软件设计属于什么专业
  • 专做海岛游的网站网站建设的基本流程图
  • 建网站需要哪些html网页设计作品中国传统文化
  • 阜新网站建设建设网站的技术性背景
  • 国内商城网站建设浙江省建设信息港岗位证书查询
  • 秦皇岛网站制作小程序开发个人资料网站怎么做
  • 快排做网站排名电子商务有限公司经营范围
  • 微网站费用海口网络公司网站建设
  • 免费网站推广软件下载什么搜索引擎搜索最全
  • 高明网站制作中国排名前十互联网公司
  • 微信手机客户端网站建设恒一信息深圳网站建设公司2