随笔 - 394  文章 - 0  评论 - 946  阅读 - 143万 

说来赶巧,之前我有16个redis集群,然后我要将某个key根据路由规则存到16个集群中的某一个上面,正巧用到了这两种哈希算法,改造完毕上线后,整体带来的效果也十分理想。

说道ketamahash,它是一致性哈希算法,一般说来都是由若干固定的虚拟节点来计算出每个虚拟节点的slots,数据存储的时候,算出key的slot值,然后存入相邻最近的虚拟节点。而murmurhash则是散列算法,由于其计算产生的结果足够剧烈,所以是目前最好的几种散列算法之一。它主要用来计算出key的slot值的。有人会问,java中的hashcode也能计算出来呀,但是hashcode计算出来的值的剧烈程度远远比不上murmurhash。拿abc和abd来说,hashcode计算出来的差值相差不大,但是murmurhash计算出来的差值则相差甚远。

二者结合,可以实现出类似redis cluster使用的路由算法,且效果也是很好的。目前已知的开源中,jedis,memcache,redis等都有采用过,所以将这两种哈希算法吃透,可谓是如虎添翼。

学东西不要急躁,要慢,要注重质量,网络上看的,源码中读的,都属于纸上得来终觉浅的东西,一定要自己写,写完后还能写成文章讲述出来,这样,你才能算是真正的吃透了。切忌看过一点源码就高谈阔论,殊不知如同浮沙筑高台,经不起推敲。

posted on   程序诗人  阅读(4336)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2010-08-21 c#资源管理器【转】
点击右上角即可分享
微信分享提示