将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值

应用场景

  • 安全加密

如MD5、SHA、DES、AES等

  • 唯一标识
  • 数据校验
  • 散列函数

设计一个散列表,如出现个别散列冲突,可以通过开放寻址法或者链表法解决

  • 负载均衡

通过哈希算法,对客户端IP地址或者会话ID计算哈希值,将取得的哈希值与服务器列表的大小进行取模运算,最终得到的值就是应该被路由到的服务器编号。如此,可以将同一个IP的所有请求,路由到同一个后端服务器上。

  • 数据分片

MapReduce的基本设计思想:如何统计”搜索关键词”出现的次数
从海量数据中对数据进行统计,可以先将数据进行分片,然后用n台服务器并行处理,从文件中依次读出各数据,并通过哈希函数计算哈希值,然后再跟n取模,最终得到的值,就是某个数据应该被分配到的机器编号,各机器对筛选出来的数据进行相关统计即可。

  • 分布式存储

一致性哈希算法,防止采用数据分片方法带来的雪崩效应。