Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

哈希與概率結構:概覽

| , 1 minutes reading.

哈希與概率結構:指紋的藝術

記憶的悖論

在一個理想的世界裡,我們會記住見過的每一個人的每一個細節。在數位世界裡,這意味著將每一個用戶 ID、每一個 URL 和每一條日誌都儲存在一個完美的、可搜尋的列表中。

但當數據規模達到數十億時,「完美記憶」就成了一種負擔。它消耗太多的記憶體,搜尋起來也太慢。

哈希 (Hashing) 就是解決方案。它是將海量資訊濃縮為固定大小的「指紋」的行為。它讓我們能從 O(N)O(N) 的搜尋進化到 O(1)O(1)——即接近光速的查找。

妥協的策略

在本章中,我們超越了簡單的排序與搜尋,進入了權衡 (Trade-offs) 的世界:

概念靈魂 / 隱喻代表演算法最佳應用場景
指紋化身份竊取者
將任何數據變為唯一的、固定長度的字串。
MD5 / SHA / Murmur完整性與身份
校驗檔案是否被修改。
映射無限儲物櫃
一個能讓妳瞬間找到任何東西的儲存系統。
HashMap速度
常數時間內的查找。
否定毒舌門衛
他可能會放過陌生人,但他絕不會對朋友說「不」。
布隆篩選器 (Bloom Filter)效率
在不儲存內容的情況下判斷是否存在。
估算統計先知
以 99% 的準確率猜出唯一項的數量。
HyperLogLog大數據基數統計
用 1.5KB 統計數十億用戶。
平衡和平之環
將數據分布在伺服器上,新增一台機器不會引發崩潰。
一致性哈希分散式系統
集群中的負載平衡。

哈希的三大法則

  1. 確定性: 相同的輸入必須永遠產生相同的指紋。
  2. 效率: 計算必須快。一個需要一小時才能生成的指紋是毫無意義的。
  3. 均勻性: 指紋應該均勻散佈。如果所有項都得到同一個「ID」(碰撞),系統就會崩潰。

小結

在本章中,我們將看到電腦科學如何處理「不可能的規模」。我們將明白:有時候,為了拯救系統,妳必須願意犧牲一點點準確性。妳將學會熱愛「指紋」,並尊重「碰撞」。

讓我們從一切的基石開始:哈希函數