当前位置: 首页 > news >正文

雪花算法替代MurmurHash后的提升(短链接项目中的唯一性设计)

短链接服务的核心功能,是将一个长网址(比如几百个字符的 URL)转换成一个短码,用户访问短码时,服务端会将其重定向回原始的长链接。
考虑到快速生成(防止高并发下,性能变差)和长变短的处理,这里想到了MurmurHash算法+62进制


MurmurHash算法

核心操作是乘法和位运算

public static int murmur32(byte[] data, int seed) { int len = data.length; int h = seed ^ len; int i = 0; while (len >= 4) { int k = (data[i] & 0xFF) | ((data[i+1] & 0xFF) << 8) | ((data[i+2] & 0xFF) << 16) | ((data[i+3] & 0xFF) << 24); k = k * 0x5bd1e995; k = k ^ (k >> 24); k = k * 0x5bd1e995; h = h * 0x5bd1e995 ^ k; i += 4; len -= 4; } // 处理剩余字节... h = h ^ (h >> 13); h = h * 0x5bd1e995; h = h ^ (h >> 15); return h; }

处理完会得到一个32位的数字,之后进行62进制的处理,能得到一个6位的短码,符合短链接的要求


之后想到了链接的唯一性,如果两个链接通过处理后得到了同一段短码,那么项目就会出错,检查了MurmurHash算法,发现最大输出空间约为43亿,无穷大输入时必然有重复的可能,要么在后续加上兜底处理,要么更改算法

这里采取用雪花算法来替代MurmurHash

雪花算法(Snowflake)是Twitter开源的分布式ID生成算法,生成的ID是一个64位的long整数,结构如下:

这样保证了唯一转换第一步的唯一性,之后再用62进制转换这个64位的数字就能得到一个短码

此时再考虑重复的可能也就只能出现在进制转换了,而62进制有62^6 ≈ 568亿种组合,假设传来1亿数据,也只占1/568,尽管这568亿数据空间的利用率不是100%,对比MurmurHash也是大提升,既保持了高性能,也处理了唯一性问题

谢谢观看

http://www.jsqmd.com/news/568289/

相关文章:

  • 从零搭建跨平台VNC环境:Tight+Tiger+Viewer+noVNC实战指南
  • Windows界面增强与个性化配置:使用ExplorerBlurMica打造现代文件资源管理器
  • P3C黄山版迁移最佳实践:从旧版到新版的平滑过渡指南
  • .NET MAUI实战指南:从零构建并签名发布Android应用
  • 利用快马平台快速构建17.143.cv图像分类模型演示原型
  • JDK 8 与 JDK 17 全面对比:从 Lambda 到密封类,Java 这九年经历了什么?
  • AVR微控制器专用轻量级数据结构库
  • 探索COMSOL热流固耦合软件在煤体研究中的奇妙应用
  • SEO_避开这些SEO误区,优化效果事半功倍
  • Oracle HR 模式递归函数练习-树形展示(基于 employees 表)
  • 如何通过 SEO 优化提高企业品牌的曝光度
  • 告别ConnectionResetError!用proxy_pool+requests让你的Python爬虫稳定跑起来
  • 研华亮相GTC2026,展示边缘AI新突破
  • CYBER-VISION零号协议互联网舆情智能监测与分析系统
  • 国产芯片烧录避坑实录:进芯AVP28335的Flash API那些事儿(附不同烧录工具配置清单)
  • 高压柔性输电系统6脉冲、12脉冲晶闸管控制HVDC仿真模型
  • 2026年热门的郑州短视频热门推荐榜 - 品牌宣传支持者
  • Windows环境下通过vcpkg高效部署CGAL的完整指南
  • 探秘HackGPT:一款强大的AI辅助开发工具
  • 手把手教你用PyTorch 2.0复现风源AI气象模型(附GitHub源码解读)
  • Linux内核container_of宏解析与应用
  • SpringBoot慢SQL排查避坑指南:自动捕获+一键优化全流程常见问题解析
  • 2026年比较好的郑州短视频拍摄高评分榜单 - 品牌宣传支持者
  • 如何在30分钟内搭建企业级低代码平台:JeecgBoot完整实战指南
  • 终极指南:如何在Blender中轻松实现3D打印工作流优化
  • keil调试设置
  • Z-Image Atelier 跨平台部署:应对不同操作系统的环境配置要点
  • 2026年项目管理工具选型指南:功能对比、适用场景与避坑建议
  • 创维E900V22D_S905L3S(B)芯片-安卓9.0-免拆线刷固件包及短接神器使用指南
  • 如何评估SEO优化的成果和效果_SEO页面优化的基本步骤有哪些