algorithm - 哈希字符串到一个数字 % 16
问题描述
我想重用或编写一个散列算法,将一个相对较短的字符串散列为数字 0 - 15。我想用它来将测试映射到特定的 Redis 数据库(默认情况下限制为 16 个数据库)。
我将如何设计这样的散列算法或寻找合适的算法以优化低碰撞风险(因为目标空间非常小)?
解决方案
使用具有高一致性的哈希函数并取结果模 16。
这应该为您提供尽可能低的碰撞风险(由于目标空间很小,碰撞风险仍然很高)。
推荐阅读
- python - 不明白如何解决错误信息
- gremlin - 配置 gremlin-server 以使用 UUID 作为 vrtices 和边缘的 id
- php - 适用于 Oracle DB 的 PHP OCI8 不适用于 Windows 上的 IIS (OCI_CRED_EXT)
- html - 如何根据 CSS 转换的百分比计算像素?
- mysql - 编写 SQL 查询,选择除同时在三列中具有指定值的行之外的所有行
- graphql - 您在更新 hasura v 2 alpha 8 的权限时遇到问题吗?
- sqlite - 如何在 UIPath 中创建与 SQLite DB 的连接
- react-native - 在 React Native Expo 中录制后如何播放声音?
- java - 使用 HTML 标签和对齐问题的多行 JLabel
- rust - once_cell 的异步版本,或避免错误的方法[E0744]:在“静态”中不允许使用“.await”?