首页 > 编程语言 >【hash】hash算法、hash函数、哈希表、布隆过滤器、一致性哈希

【hash】hash算法、hash函数、哈希表、布隆过滤器、一致性哈希

时间:2024-07-02 23:56:11浏览次数:18  
标签:hash 函数 布隆 哈希 一致性 节点 环上

哈希函数的基本性质

  • 函数定义域是无穷的,值域相对有限(但也很大,比如2的64次方)
  • 输入同样样本一定得到同样的输出
  • 输入不同样本可能得到相同输出,此时叫哈希碰撞
  • 输入大量不同的样本,得到大量输出值,会几乎均匀的分布在整个输出域上

布隆过滤器

通过几个不同哈希函数计算哈希值,对位图长度取模,将对应位置设为1(描黑),可以快速判断元素是否访问过(误判率p,与位图长度m,哈希函数个数和数据量有关n)

一致性哈希

简单的存储结构,在添加机器或者减少机器,数据迁移的代价是全量的
一致性哈希实现的分布式存储结构,哈希域变环、机器进环设计
一致性哈希的虚拟节点技术可以规避数据倾斜、实现负载均衡、实现负载管理

一致性哈希,计算哈希值后不再进行取模运算,直接用哈希值,放在一个环上。机器在环上的位置: 虚拟节点技术,给每台机器分配一些虚拟节点(比如字符串),让这些虚拟节点去抢环(在环上占位)。

标签:hash,函数,布隆,哈希,一致性,节点,环上
From: https://www.cnblogs.com/hudad/p/18262336

相关文章

  • 【0299】Postgres内核之哈希表(Hash Tables)
    0.哈希表(HashTables)哈希表是一种用于存储键值对的数据结构。与使用索引号访问元素的基本数组不同,哈希表使用键来查找表条目。这使得数据管理对于用户来说更易于管理,因为按属性对数据条目进行分类比按它们在一个巨大的列表中的数量更容易。在C++中,我们将哈希表实现为......
  • (nice!!!)LeetCode 3164. 优质数对的总数 II(数组、哈希表)
    3164.优质数对的总数II思路:先找出可以被k整除的nums[i].方法一:统计因子。1、找出数组nums1每个元素的因子,用哈希表来记录每个因子出现的次数。然后再遍历数组nums2进行累加即可。classSolution{public:constintN=1e6+10;longlongnumberOfPairs(vec......
  • 9.优化算法之哈希表
    classSolution{publicList<List<String>>groupAnagrams(String[]strs){Map<String,List<String>>map=newHashMap<>();for(Stringstr:strs){char[]array=str.toCharArray();Arrays.......
  • 布隆过滤器添加数据怎么办,删除数据怎么办
    布隆过滤器(BloomFilter)是一种空间效率极高的概率型数据结构,用于检测一个元素是否在一个集合中。它之所以高效,是因为它使用位数组和多个随机的哈希函数来表示一个集合,而非存储元素本身。然而,布隆过滤器的这种设计也带来了一些固有的限制和特性:内存消耗布隆过滤器的内存消耗取决......
  • 【Java完整版 面试必备】Leetcode Top100题目和答案-哈希
    以下摘自leetcodeTop100精选题目-哈希1.两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。......
  • Java-HashMap和ConcurrentHashMap的区别
    Java-HashMap和ConcurrentHashMap的区别一、关键区别1.数据结构2.线程安全3.性能4.扩容机制二、源码简析1.并发控制机制2.数据结构转换:链表转红黑树3.扩容机制触发hashMap和concurentHashMap扩容机制的条件三、putIfAbsent方法computeIfAbsent方法区别​在Java......
  • hash
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineall(a)(a).begin(),(a).end()typedef__int128_ti128;typedef__uint128_tu128;constintN=1e5+7;vector<int>c[200];vector<int>d[200];u128h[26][N];u128......
  • 力扣每日一题 美丽下标对的数目 枚举 哈希
    Problem:2748.美丽下标对的数目......
  • [Java并发]ConcurrentHashMap
    ConcurrentHashMapHashMap和ConcurrentHashMap的区别主要区别就是hashmap线程不安全,ConcurrentHashMap线程安全HashMap线程不安全,有以下两个问题put覆盖问题比如有两个线程A和B,首先A希望插入一个key-value对到HashMap中,首先计算记录所要落到的桶的索引坐标,然后获取到该桶......
  • 大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,目前有没有能够利用到的数据结构来做
    往期内容:面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文(1)】-CSDN博客本文为【布隆过滤器八股文合集】初版,后续还会进行优化更新,欢迎大家评论交流~大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行......