u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口
哈希函数:根据关键字设计的,有很多种函数,主要原理是根据数组的大小进行求模运算,其数组的大小一般设计为质数,因为需要均匀的散布
一般我们从头遍历到尾,先去查1然后2,最后3,如果有一万个、那岂不是需要遍历一万次呢,此种做法非常慢,不可以取
数组的结构可以使我们快速定位到3,数组有下标、索引的概念,把学号当做索引,根据索引计算对应的元素内存在哪里,
我们只需要看a[3]所对应的值是什么,不需要看a[1],a[2],,这样查询非常块,就算有一万个元素,也可以一步到位,不需要从头遍历到尾
以上也为一种意义上的哈希表,把key转换为索引,数组的元素存的是key对应的value的值
像HashMap里面有写好哈希表,当存储一对key-value键值对元素的时候,把key拿出来,通过一个hash函数,找到一个内存地址,然后key和value键值对Entry放在对应的内存地址上
举例:存学号1:张三把1 拿出来通过hash函数,找到内存地址a ,内存地址a上对应着键值对 1:张三1 a:1 张三2 b:2 李四3 c:3 王五
定义:两个不同的key,通过同一个hash函数,得到的相同的内存地址,此种情况为哈希碰撞
此时有数据 4:赵六,拿key 4 通过hash函数算的内存地址也是c,但此时内存地址c已经存储了元素,此种现象为哈希碰撞O(K),k为碰撞的元素个数
每个哈希表节点都有一个 next 指针, 多个哈希表节点可以用 next 指针构成一个单向链表, 被分配到同一个索引上的多个节点可以用这个单向链表连接起来,这就解决了键冲突的问题,此种方案叫链表式解决方案。
思想:与链表式解决方案相比,此种方案主要区别是不用next指针,把其它下标的位置都对外开放
tips:该方法不是很好,很容易把数字聚集到一个地方,查找容易浪费性能,执行很多次
如果遇到冲突,就往下一个地址寻找空位,新位置=原下标位置+i (i是查找的次数)如图:以下关键字2,38,28,4,12存入理解
hash(2)=2,此时数组下标的位置有元素,已被占用,就往下找,数组下标3的位置为空,因此关键字2存在数组下标为3的位置
hash(28)=2,下标2位置已被占用,由于是线性探测法,可一直往下找到空的位置,所以关键字28放入下标为4的位置,同理,关键字4存入下标为5的位置
hash(12)=12,位置已被占用,就会转回来从头开始寻找,存入下标为0的位置
如果遇到冲突,就往(原始位置+i²)的位置寻找空位,i是查找的次数即新位置=原始位置+i²1²,2²,3²,4²,5²,6² 距离越来越大比较分散,不扎堆,解决了线性探测法扎堆的问题
hash(2)=2,下标为2的位置已被占用,用平方探测法探测下一个位置是否为空,第一次探测1²=1,是空的,可以直接放入
hash(28)=2,下标为2位置已被占用,平方探测法探测第一次探测1²,下标2+1²=3的位置被关键字2占用,第二次探测2²,下标2+4=6的位置未被占用,可直接放入
hash(19)=6,下标为6的位置被占用,平方探测法探测第一次探测1²,下标6+1²=7的位置未被占用,可直接存入
如R=7: hash2(关键字)=7-(关键字 % 7) 也就是说二次hash的结果在1-7之间,不会等于0,(如果为0,则新位置=原位置,不合理)
如遇到冲突,新位置=原位置+i*hash2(key) 可以让数字没有太多规律的分配
hash(2)=2,数组下标为2的位置被占用,出现冲突,需要计算hash2(2)=5,新位置下标=2+5=7,位置为空,可以直接放入
场景:分布式缓存中,有三条服务器S0,S1,S2 同时有3万张图片想均匀的缓存到3台服务器
hash算法:hash(图片名称)=图片名称 mod 机器数3 结果为0,1,2三种情况,正好与服务器编号对应,缓存对应的服务器上
缺陷:服务器增加一台,由3台变成4台,同一图片名称hash函数计算,除数由3变成4,余数变化,即该缓存的服务器编号变化了
比如原先的图片名称6 ,hash(6)=6%4=2,程序会到服务器S2上去寻找图片,但实际上是存储在服务器S0上,读取不到数据。由于服务器数量发生变化,大量缓存在同一时间失效,称为缓存雪崩此时,只有去后端服务器上获取数据,压力都在后端服务器,整个系统可能被压垮,为避免此问题,需使用一致性hash算法。
有一个圆环(hash环),有2的32次方个点组成,还是有A,B,C三条服务器
hash(A)=A%(2的32次方) 得出的整数代表服务器A,hash环上必定有一点对应,服务器A映射到hash环上,服务器B、C一样的方法。
从图片的位置开始,顺时针查找,遇到的第一台服务,为该图片应该缓存的服务器
假设有a.jpg,b.jpg,c.jpg,由以下图片和服务在hash环上的位置,由此可确定
此时,加入增加一台服务器D,按一致性hash算法规则,现将服务器D映射到hash环上,此时一部分图片延顺时针方向遇到的服务器由A变成服务器D,增加一台服务会导致一小部分图片无法访问,但大部分图片顺时针方向遇到的服务器不变,可以正常访问。
缓存服务器的数量发生变化,只有一部分缓存失效,缓存依然能分担整个系统的大部分压力,不像hash算法,不是所有的压力同一时间集中在后端服务器上
以上hash算法,一致认为三条服务器均匀的映射到了hash环上,但在实际映射中,服务映射到hash环上很有可能是斜的,叫hash环偏斜
hash环偏斜时,大部分的缓存对象很有可能缓存到一台服务器上,导致缓存不均匀,三台服务器没有被平均使用。此时,如果缓存较多的那台服务器出现故障,由于失效缓存太多,在极端情况下,很有可能引起系统的故障,要想让服务器均匀分布在服务器上,服务器尽量多,但实际服务器数量固定,最好方案引入虚拟节点。
比如服务器A,映射出A1,A2,A3…An,n个虚拟节点,将这些虚拟节点加入hash环,引入后,hash化上的虚拟节点越多,服务器节点越多,缓存被均匀分布的概率越大,这样在一定程度上减小hash环倾斜带来的影响。
建立一个特殊存储空间,专门放冲突的数据,此种方法使用于数据和冲突较少的情况下
【来源:巩义融媒】近日,河南省工业和信息化厅公布了2025年度河南省“零碳”工厂、“超级能效工”厂名单。巩义市两家企业上榜,人民电缆集团有限公司入选“零碳”工厂河南明泰铝业股份有限公司入选“超级能效”工厂。
洛阳市住房公积金管理中心发布最新通知,12月31日起暂停办理住房公积金业务。尊敬的缴存职工、单位:根据中心2025年度决算工作安排,2025年12月31日起暂停办理柜面及线上各项住房公积金业务,2026年1月4日起恢复正常。
12月23日零时,随着一辆粤C牌照的私家车平稳驶入港珠澳大桥珠海公路口岸“粤车南下”出境专用车道,“粤车南下”进入香港市区政策正式落地实施,粤港两地车辆往来迈入“双向直通、市区直达”新阶段,粤港澳大湾区互联互通再进一步!
重庆九龙城市开发集团有限公司原党委书记、董事长唐万民涉嫌严重违纪违法接受审查调查据九龙坡区纪委监委消息:重庆九龙城市开发集团有限公司原党委书记、董事长唐万民涉嫌严重违纪违法,目前正接受区纪委监委纪律审查和监察调查。
各开发区管委会,各区县人民政府,市人民政府各部门,各有关单位:根据《国务院办公厅关于2026年部分节假日安排的通知》精神,为便于各级、各部门、各相关单位及早合理安排工作,现将2026年元旦放假调休日期安排通知如下:1月1日至3日放假调休,共3天。
成都市温江区人大常委会原党组副书记、副主任陈定祥 严重违纪违法被开除党籍
日前,经成都市委批准,成都市纪委监委对成都市温江区人大常委会原党组副书记、副主任陈定祥严重违纪违法问题进行了立案审查调查。
新华社照片,北京,2025年12月26日12月26日,彭珮云遗体在北京八宝山革命公墓火化。受中央委托,赵乐际、蔡奇、丁薛祥、韩正等到八宝山革命公墓为彭珮云送别,并慰问其亲属。这是赵乐际与彭珮云亲属握手,表示慰问。
眼看着接近年底了,各位大学生们也该放寒假啦,今天为大家汇总了郑州部分高校的寒假放假时间,一起来看看吧!
在阅读文章前,辛苦您点下“关注”,方便讨论和分享。作者定会不负众望,按时按量创作出更优质的内容文 小戎哈喽,大家好,小戎这篇国际评论,主要来分析2025年末美军增兵加勒比海的“缉毒”幌子,拆解其背后选举、能源掠夺与霸权巩固的多重算计。2025年末的加勒比海,比肥皂剧还抓马!
美国媒体最近又上新段子了!《国家利益》直接说:“我们要是守不住制空权,中国你也别想独占,得跟我们一起‘共享’!”网友看完都乐了:这不是明摆着实力跟不上,还要嘴硬自我安慰嘛!美媒“共享论”是怎么冒出来的?美国人这些年一直挺骄傲的,觉得自己空军全球天花板,谁也碰不到。