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;

}

参考链接:

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • verilog经典教程(ps入门教程自学图解)

    Verilog入门1关键字1.1modulemodule()…endmodule代表一个模块,我们的代码写在这个两个关键字中间1.2inputoutputinput关键词,模块的输入信号,比如inputClk,Clk是外面关键输入的时钟信号;output关键词,模块的输出信号,比如output[3:0]Led;这个地方正好是一组输出信号。其中[3:0]表示0~3共4路信号。inout模块输入输出双向信号。数据总线的通信中,这种信号被广泛应用;wire关键词,线信号。例如:w

  • 各大技术团队博客_如何扩大团队规模

    各大技术团队博客_如何扩大团队规模BAT技术团队博客1.美团技术团队博客: 地址: http://tech.meituan.com/2. 腾讯社交用户体验设计(ISUX)地址:http://isux.tencent.com/3. 京东设计中心地址:http://jdc.jd.com4. QQ游戏设计中心地址:ht

  • vs2013下载及安装教程_vs 2013

    vs2013下载及安装教程_vs 2013下面是VS2013对的网盘分享链接:https://pan.baidu.com/s/1K3BRe9TwM5RT5VujeRXx1w提取码:2yd6复制这段内容后打开百度网盘手机App,操作更方便哦下面是安装步骤链接:https://pan.baidu.com/s/1DBctGcVa-Tj3IAR44L6lEA提取码:zaag复制这段内容后打开百度网盘手机App,操作更方便哦…

  • c语言中char类型转int类型「建议收藏」

    c语言中char类型转int类型「建议收藏」前言在九度oj做acm的时候,经常会遇到了char类型和int类型相互转化的问题,这里进行一下总结。今后,可能会多次更新博客,因为半年做了很多总结,但是都是保存在word文档上了,现在开始慢慢向CSDN博客转移。问题类型char型数字转换为int型转换方法a[i]-‘0’参考程序#include#include#includei

  • TypeReference

    TypeReference1.基础使用在fastjson中提供了一个用于处理泛型反序列化的类TypeReference。importcom.alibaba.fastjson.TypeReference;List&lt;VO&gt;list=JSON.parseObject("…",newTypeReference&lt;List&lt;VO&gt;&gt;(){});如下写法有更好的性…

  • html左侧浮动广告代码,如何制作浮动广告 JavaScript制作浮动广告代码

    html左侧浮动广告代码,如何制作浮动广告 JavaScript制作浮动广告代码如果有一定的JavaScript基础,制作浮动广告还是比较容易的。直接上代码了:无标题文档*{margin:0;padding:0;}#csdn{width:800px;margin:0auto;}#ad{position:absolute;right:0px;top:30px;z-index:1;}#cl{position:absolute;right:0px;top:30px;z-index…

发表回复

您的电子邮箱地址不会被公开。

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