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

Hash与布隆过滤器

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.gsyq.cn/news/25963.html

相关文章:

  • 2025年安恒信息深度解析:AI与数据安全双轮驱动的技术演进全景
  • 清单测试
  • 开源手写识别库zinnia
  • 2025年10月中国宝宝辅食品牌推荐榜:深海去刺鱼领衔对比
  • contos 同步SVN 迁移SVN 安装SVN
  • 2025年10月石墨电极厂家推荐榜:十强对比与选购全攻略
  • 2025.10.20 - 10.31
  • Random VIMs
  • 【每日积累】javascript 一文弄懂eval
  • 腾讯云COS通过CDN加速配置指南 - 教程
  • 量子计算25年发展历程与技术挑战
  • 藏宝阁
  • 【GitHub每日速递 251021】一键将全新Arch安装变身超美现代Web开发系统!Omarchy太神了
  • [Mongodb]mongodb的安装以及增删改查
  • 【JavaScript-基础】split,splice,slice 三者的用法
  • 2025 代码源 CSP-S 模拟赛复盘
  • 2025.10.21——1绿
  • 快速提升Entra ID安全性的实用指南
  • 机器学习商业应用实战指南
  • 在线签名工具,手写签名保存为png图片,用于生成电子签名用于word文档等
  • 在线签名工具,保存为png图片,用于生成电子签名用于word文档等
  • 251021
  • CityRefer:城市规模点云数据上的地理感知 3D 视觉接地数据集 - MKT
  • LLM学习笔记DAY8
  • Grounded-SAM 使用文本提示检测和分割所有内容 - MKT
  • mysql数据库查询参考
  • 视觉和语言 国防科大清华城市空间无人机导航推理!GeoNav:赋予多模态大模型地理空间推理能力,实现语言指令导向的空中目标导航 - MKT
  • Python理论题目集
  • 以太坊账⼾模型的理解,合约账⼾、EOA账⼾认识
  • [Tool] fzf 模糊搜索神器基础功能和操作