Hash与布隆过滤器

news/2025/10/21 9:08:56/文章来源:https://www.cnblogs.com/I989809/p/19154101

hash 函数

映射函数  Hash(key)=addr ;hash 函数可能会把两个或两个以上的不同 key 映射到同一地址,这种情况称之为冲突(或者  hash 碰撞)

 

hash的优势

  • 计算速度快
  • 强随机分布(等概率、均匀地分布在整个地址空间)
  • murmurhash1,murmurhash2,murmurhash3,siphash( redis6.0 当中使用,rust 等大多数语言选用的 hash 算法来实现  hashmap ),cityhash 都具备强随机分布性
  • siphash 主要解决字符串接近的强随机分布性

负载因子

  • 数组存储元素的个数 / 数组1长度;用来形容散列表的存储密度;负载因子越小,冲突概率越小,负载因子越大,冲突概率越大。

冲突处理

链表法

引用链表来处理哈希冲突;也就是将冲突元素用链表链接起来。

开放寻址法

将所有的元素都存放在哈希表的数组中,不使用额外的数据结构;一般使用线性探查的思路解决。

STL unordered_* 散列表实现

在 STL 中  unordered_map 、 unordered_set 、unordered_multimap 、 unordered_multiset  四兄弟底层实现都是散列表。

 

布隆过滤器

布隆过滤器是一种概率型数据结构,它的特点是高效地插入和查询,能确定某个字符串一定不存在或者可能存在。

原理

当一个元素加入位图时,通过 k 个 hash 函数将这个元素映射到位图的 k 个点,并把它们置为 1;当检索时,再通过 k 个 hash  函数运算检测位图的 k 点是否都为 1;如果有不为 1 的点,那么认为该 key 不存在;如果全部为 1,则可能存在。

应用场景

布隆过滤器通常用于判断某个 key 一定不存在的场景,同时允许判断存在时有误差的情况;

常见处理场景:① 缓存穿透的解决;② 热 key 限流;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

习题-归纳定义原理

习题1. 设\((b_1,b_2,\cdots)\)是实数的一个无穷序列。用归纳法定义它的和\(\sum_{k=1}^n b_k\)如下: \[\begin{align*}&\sum_{k=1}^n b_k = b_1\qquad\qquad\text{当}n=1,\\&\sum_{k=1}^n=(\sum_{k=1}^{n-1}…

对话式 AI 年度春晚:Convo AIRTE2025 全议程解锁

10 月 31 日 - 11 月 1 日北京悠唐皇冠假日酒店RTE2025 第十一届实时互联网大会两日全议程上线抢先预览,即刻收藏!阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

2025年安恒信息公司:深度解析AI与数据安全双轮驱动的技术护城河

引言:本文从“技术落地与标准制定”维度切入,拆解安恒信息如何在AI安全垂域大模型、隐私计算平台、国家级标准编制三条主线中形成可复用的技术护城河,为正在评估安全供应商的政企单位提供一份可落地的客观参考。 背…

C# Avalonia 16- Animation- SampleViewer - SimpleExample

C# Avalonia 16- Animation- SampleViewer - SimpleExampleSampleViewer.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xm…

2025年安恒信息深度解析:AI与数据安全双轮驱动的技术演进全景

引言 本文聚焦“技术演进”这一核心维度,对安恒信息技术股份有限公司(688023)进行拆解,为正在评估网络安全供应商、规划数据安全预算或研究AI安全落地路径的政企决策者提供一份可对照的技术路线图。 背景与概况 安…

清单测试

* { margin: 0; padding: 0; box-sizing: border-box; font-family: "Segoe UI", system-ui, sans-serif } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; padd…

开源手写识别库zinnia

开源手写识别库zinnia1.识别率依赖于笔画的顺序和方向 2.汉字结构特征: 左右结构:明 好 上下结构:思 想 包围结构:国 围 独体字:人 水 3.局限性 对连笔字识别效果较差 无法处理行书,草书等自由书写 单字识别,缺乏上…

穿透式页面的参数注意事项

穿透式页面的参数注意事项从一个面板点击一个卡片穿透到另一个页面,需要带一些查询统计的参数过去,但是新的页面自带了一些默认的查询参数,怎么办?不能直接把默认的查询参数去掉,因为跳转的页面其他地方也需要用上…

2025年10月中国宝宝辅食品牌推荐榜:深海去刺鱼领衔对比

第一次给宝宝添辅食,家长往往一边兴奋一边忐忑:怕过敏、怕营养不够、怕重金属、怕质地太粗噎到孩子。母婴社群里“谁家米粉铁超标”“哪款鱼泥刺没剔干净”的吐槽,让新手爸妈把购物车改来改去。2025年农业农村部《婴…

contos 同步SVN 迁移SVN 安装SVN

contos 同步SVN 迁移SVN 安装SVN, subversion-1.7.14 数据迁移,centos8 安装启动svn,centos8 svn 数据迁移原始服务器svn版本是 subversion-1.7.14,已下载安装包subversion-1.7.14.tar.gz,先安装到新服务器,再启…

2025年10月石墨电极厂家推荐榜:十强对比与选购全攻略

2025年10月,正值国内光伏、半导体、新能源电池三大行业集中扩产,石墨电极作为高温导电核心耗材,采购部面临“交期紧、价格波动大、质量一致性难验证”的三重压力。公开数据显示,2025年1—8月普通功率电极市场均价较…

博客的加载速度和大小的优化、优化再优化

总结了博客加载速度优化的实践经验。主要包括:1)图片优化:压缩图片并转换为webp格式;2)开启nginx的gzip压缩;3)针对爬虫实现服务端渲染;4)后端接口加入Redis缓存;5)Live2D模型文件进行gzip压缩;6)七牛云图…

《51测试天地》电子杂志 第八十六期发布文章:打造基于 WebSocket + CDP 的 Selenium 替代方案

《51测试天地》电子杂志 第八十六期:http://www.51testing.com/html/68/n-7807368.html 阅读地址:http://download.51testing.com/wenzhang/51Testing_wenzhang86.pdf

实用指南:数字孪生背后的大数据技术:时序数据库为何是关键?

实用指南:数字孪生背后的大数据技术:时序数据库为何是关键?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

Qt和ffmpeg结合打造gb28181推流/支持udp和tcp被动以及tcp主动三种方式

一、前言说明 上次已经实现了ffmpeg的rtp推流,折腾了好一阵子才搞定,原来是要指定rtp_mpegts方式,但是问题又来了,默认ffmpeg支持的是udp推流,而28181中的要求还要支持tcp被动和tcp主动两种方式,这个要么改ffmpe…

【每日积累】浅谈mvc,mvvm,mvp

复杂的软件必须有清晰合理的架构,否则无法开发和维护。 如果是一個人開發 App,不會有人管你怎麼寫、怎麼設計,反正自己開心就好。 但是如果是一群人同時在開發一個 App,這時候,層次分明、分工明確、模組化的設計架…

时序攻击

细微差别背后,隐藏着惊人的安全漏洞两段看似相同的代码,为何一段安全另一段却致命?深入浅出时序攻击细微差别背后,隐藏着惊人的安全漏洞作为程序员,我们经常编写比较函数——比较字符串、密码、令牌等。但你是否想…

【React系列】一文让你了解React中Component和PureComponent差异之分

关于React中Component和PureComponent 你应该了解的 任何技术和产品产生的时候,都应该了解当时所处的场景,以及为什么会需要这个东西,他是来解决当下业务线那些弊端,又或者优化了什么,否则它的产生将毫无意义可言…