hash算法得出来的值不是一个固定长度的字符串吗?怎么取模?

hash算法得出来的值不是一个固定长度的字符串吗?怎么取模?

我怎么记得hash算法得出来的值不是一个固定长度的字符串吗, 很长的那一种,都不是数字怎么参与取模运算? 我对hash是不是理解错了?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
风间影月 2020-06-02 00:32:23

这个不用太纠结,哈希在很多场景里都有,比如数据库分库,你有5个库,这个时候根据5来取模。得到的值就是散烈的库

  • 提问者 开发很忙Frank #1
    好像我懂了 哈希是一种广义的算法 可以说是一种思想 我所说的生成一串很长的字符串,比如sha1他只是哈希算法其中的一种。其实哈希算法表达的意思是将任何的输入按照特定的算法产生固定形式的输出,相同的输入产生的输出都是一致的,不同的输入产生的输出也有可能是一致的,不过大部分都是不一致的。比如说对任何ip进行哈希,都输出为一个整数,然后接着对这个整数根据服务器总数进行取模,就能得到下标,通过下标就能匹配到相应的服务器。根据哈希的特点,相同的ip会产生相同的下标,不同的ip有可能产生相同的下标也有可能产生不同的下标。利用这个特点其实可以实现正态分布,从而实现负载均衡,分流等效果。
    2020-06-02 01:27:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师