由于需要用到目录打散的算法,网上找了一下资料,发现都是java版本的,所以参考了一下写了个go版本的。分享一下

package mainimport ("fmt""hash/crc32""github.com/google/uuid"
)func HashMakeDir(name string) (dir int, Subdir int) {var (hashNumber int)hashNumber = int(crc32.ChecksumIEEE([]byte(name)))if -hashNumber >= 0 {hashNumber = -hashNumber}return hashNumber & 0xf, (hashNumber & 0xf0) >> 4
}func main() {//循环500次查看结果for index := 0; index < 500; index++ {str := uuid.New().String()// 循环3次验证生成是否一致for i := 0; i < 3; i++ {dir, subDir := util.HashMakeDir(str)fmt.Println(fmt.Sprintf("/tmp/%d/%d", dir, subDir))}}
}

部分打印如下:

/tmp/0/6
/tmp/0/6
/tmp/0/6
/tmp/4/10
/tmp/4/10
/tmp/4/10
/tmp/7/0
/tmp/7/0
/tmp/7/0
/tmp/4/6
/tmp/4/6
/tmp/4/6
/tmp/14/10
/tmp/14/10
/tmp/14/10
/tmp/0/4
/tmp/0/4
/tmp/0/4
/tmp/5/7
/tmp/5/7
/tmp/5/7
/tmp/12/5
/tmp/12/5
/tmp/12/5
/tmp/3/6
/tmp/3/6
/tmp/3/6
/tmp/10/3
/tmp/10/3
/tmp/10/3
/tmp/4/11
/tmp/4/11
/tmp/4/11
/tmp/11/12
/tmp/11/12
/tmp/11/12
/tmp/2/10
/tmp/2/10
/tmp/2/10
/tmp/8/6
/tmp/8/6
/tmp/8/6
/tmp/3/0
/tmp/3/0
/tmp/3/0
/tmp/4/6
/tmp/4/6
/tmp/4/6
/tmp/8/7
/tmp/8/7
/tmp/8/7
/tmp/9/14
/tmp/9/14
/tmp/9/14
/tmp/6/12
/tmp/6/12
/tmp/6/12

目录打散hash算法(golang)相关推荐

  1. 算法--Hash算法及其应用场所

    文章目录 1.Hash算法定义 2.应用 2.1 安全加密 2.2 唯一标识 2.3 数据校验 2.4 散列函数 2.5 负载均衡 2.6 数据分片 2.7 分布式存储 1.Hash算法定义 哈希算法 ...

  2. Hash 算法(MD5、SHA-512)

    文章目录 0x01 Hash 算法简介 0x02 常见的 Hash 算法 0x03 MD5 一.算法发展 1.1 MD2 1.2 MD4 二.MD5 原理 2.1 数据填充 2.2 添加长度 2.3 ...

  3. Golang 一致性Hash算法实现

    ❝ 一致性 hash 算法是在分布式应用中使用广泛.其主要作用是为了解决服务中的热点问题.例如在分布式数据存储,比如Redis缓存集群.有状态的任务作业等,通过其解决请求的热点问题,并且可以缓解当发生 ...

  4. 一致性 Hash 算法原理总结

    一致性 Hash 算法是解决分布式缓存等问题的一种算法,本文介绍了一致性 Hash 算法的原理,并给出了一种实现和实际运用的案例: 一致性 Hash 算法背景 考虑这么一种场景: 我们有三台缓存服务器 ...

  5. 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表

    列表 一.列表 List 我们又经常听到 列表 List 数据结构,其实这只是更宏观的统称,表示存放数据的队列. 列表 List:存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出某序 ...

  6. vrp 节约算法 c++_数据结构和算法(Golang实现)(8.1)基础知识-前言

    基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...

  7. 关于一致性hash算法的几个问题

    本文来说下关于一致性hash算法的几个问题 文章目录 分布式系统的基本概念 分布式系统与高并发高可用 集群和分布式的区别与联系 分布式系统的分发 常用负载均衡策略 Hash取模策略 Hash取模的弊端 ...

  8. 企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)

    文章目录 一. GlusterFS 概述 1.1 GlusterFS 简介 与传统分布式相比的优点 1.2 GlusterFS 的特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准 ...

  9. java常见的hash算法_常见的哈希算法和用途

    写在前面 哈希算法经常会被用到,比如我们Go里面的map,Java的HashMap,目前最流行的缓存Redis都大量用到了哈希算法.它们支持把很多类型的数据进行哈希计算,我们实际使用的时候并不用考虑哈 ...

最新文章

  1. Python使用datetime中的timedelta模块实现时间增减:python计算100天后是哪年那月那日?
  2. python开发效率最高_公认8个效率最高的爬虫框架
  3. 实验吧— Crypto Write up(一)
  4. 通过js引用外部脚本(方便直接在浏览器上调试抓取代码)
  5. Ext JS高级程序设计
  6. 结构光三维重建Projector-Camera Calibration投影仪相机标定
  7. Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率...
  8. 《RPA、AI、.NET Core 与未来》-中国.NET开发者峰会
  9. 命运2服务器维护时间2019,《命运2》今晚将停机维护 为多平台共用存档做准备...
  10. 神经网络训练3次就准确率不变_1组高效徒手训练,6个动作每周3-5次,帮你在家高效率燃脂增肌!...
  11. 评分组件(RatingBar)
  12. 瑞萨电子推出R-Car Gen3e CPU速度提升达20%
  13. 使用data attributes
  14. 虚拟ip(VIP)实现原理
  15. CSS——淘宝-产品详情的制作
  16. ubuntu默认播放器缺少解码器
  17. 人工智能产生式系统动物识别实验python
  18. php重置按钮,input 标签中 reset 重置按钮点击后表单不能清空的原因
  19. Bzoj2959: 长跑
  20. C++ 解决经典哥尼斯堡七桥问题

热门文章

  1. 单元格内多个姓名拆分成一列_Excel如何将姓名分拆成姓和名两列(使用数据分列完成)...
  2. 零基础入门 Stable Diffusion - 无需显卡把 AI 绘画引擎搬进家用电脑
  3. avws扫描出来的漏洞怎么利用_如何用Acunetix网站漏洞扫描软件快速进行扫描?告诉您几个小妙招!...
  4. Unity动态加载与内存关系3:AssetBundle (Addressable Assets)篇
  5. linux grub关闭 fsck,手把手教你安全运行fsck命令
  6. [英文邮件] 祝福 + 寻求建议 + 附件 的句子表达
  7. 5909. 【NOIP2018模拟10.16】跑商(圆方树+树链剖分+SET)
  8. 如何使用Selenium IDE浏览器插件轻松完成脚本录制,轻松搞定自动化测试!
  9. 玉流馆,吃狗肉看朝鲜MM
  10. EmguCv3.4在实际工业应用----用于颜色检测,判定报警!