Murmur下载_murmurio

Murmur下载_murmurioMurmurHash1MurmurHash简介Murmur英文(multiplyandrotate)and(multiplyandrotate),MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。由AustinAppleby在2008年发明,并出现了多个变种,都已经发布到了公有领域(publicdomain)。与其它流行的哈希函数相比,对于规律性较强的key,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MurmurHash

1MurmurHash简介

Murmur英文 (multiply and rotate) and (multiply and rotate),MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。由Austin Appleby在2008年发明,并出现了多个变种,都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。

Austin Appleby被邀到google工作,MurmurHash3算法是最新版本,基于MurmurHash2改进了一些小瑕疵,使得速度更快,实现了32位(低延时)、128位HashKey,尤其对大块的数据,具有较高的平衡性与低碰撞率。

2MurmurHash的应用

Redis在实现字典时用到了两种不同的哈希算法,MurmurHash便是其中一种(另一种是djb),在Redis中应用十分广泛,包括数据库、集群、哈希键、阻塞操作等功能都用到了这个算法。

Cassandra的数据模型以及Partition Key,同时Cassandra维护了一个令牌环,这样当写入一条数据或者需要读取数据的时候,就知道首先去哪一台机器执行相应的操作。在底层支撑令牌的算法,就是默默无闻但是几乎一统江湖的MurmurHash算法。

如Hadoop、libstdc++、nginx、libmemcached、常见的大数据库底层,都使用了这个MurmurHash算法作为底层的存储算法。

3实现代码

MurmurHash2实现代码:

uint32_t

MurmurHash2 ( const void * key, int len, uint32_t seed )

{

// ‘m’ and ‘r’ are mixing constants generated offline.

// They’re not really ‘magic’, they just happen to work well.

const uint32_t m = 0x5bd1e995;

const int r = 24;

// Initialize the hash to a ‘random’ value

uint32_t h = seed ^ len;

// Mix 4 bytes at a time into the hash

const unsigned char * data = (const unsigned char *)key;

while(len >= 4)

{

uint32_t k = *(uint32_t*)data;

k *= m;

k ^= k >> r;

k *= m;

h *= m;

h ^= k;

data += 4;

len -= 4;

}

// Handle the last few bytes of the input array

switch(len)

{

case 3: h ^= data[2] << 16;

case 2: h ^= data[1] << 8;

case 1: h ^= data[0];

h *= m;

};

// Do a few final mixes of the hash to ensure the last few

// bytes are well-incorporated.

h ^= h >> 13;

h *= m;

h ^= h >> 15;

return h;

}

参考链接:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180250.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月19日 下午3:16
下一篇 2022年10月19日 下午3:16


相关推荐

  • R语言描述性统计函数总结

    R语言描述性统计函数总结描述性统计 1 使用 summary 函数来获取描述性统计量 summary 函数提供了最大值 最小值 四分位数和数值型变量的均值以及因子向量和逻辑向量的频数统计例子 myvars lt c mpg hp wt summary mtcars myvars mpghpwtMin

    2026年3月16日
    2
  • qt 调用qpainter_Qt Qpainter

    qt 调用qpainter_Qt QpainterMyImgTest h ifndefMYIMGT H defineMYIMGT H includeclass publicQWidge Q OBJECTpublic MyImgTest QWidget parent 0 MyImgTest voidpaintEve QPaintEvent endifMyImgTe

    2026年3月17日
    1
  • 如何检测wifi信号强度以及辐射强度_wifi信号强度标准

    如何检测wifi信号强度以及辐射强度_wifi信号强度标准原文网址:http://jingyan.baidu.com/article/90895e0fe9616164ec6b0b88.html当我们在使用wifi上网时,在某些角落会出现无wifi信号,或是时

    2022年8月2日
    9
  • jQuery Sizzle选择器

    jQuery Sizzle选择器转载 http www baiduux com blog 2010 07 15 the sizzle in jquery 这是一篇关于介绍 jQuerySizzle 选择器的文章 由我和 obility 共同完成 在文中 我们试图用自己的语言配以适量的代码向读者展现出 Sizzle 在处理选择符时的流程原理 以及末了以少许文字给你展示出如何借用 Sizzle 之手实现自定义选择器 也许更标准的叫

    2026年3月17日
    1
  • WTL介绍

    WTL介绍

    2021年12月8日
    57
  • 安装ADOBE reader时出现找不到actionlist的解决办法

    安装ADOBE reader时出现找不到actionlist的解决办法这个错误的原因是机器上有未卸载干净的 flashplayer 首先下载一个 AdobeFlashPl 8 800 129 地址为 http lt newhua com down flashplayer1 8 uninstall win zip 解压之后运行安装 然后从下面这个地址下载并安装 adobereader 即可 http aihd

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号