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

当前的版本是MurmurHash3,能够产生出32-bit或128-bit哈希值。
较早的MurmurHash2能产生32-bit或64-bit哈希值。

应用场景
比如按关键词分桶,将数据相对平均分到N个桶。

演示:下面用openresty演示MurmurHash2的使用

1,安装openresty(http://openresty.org/cn/installation.html)

2,安装murmurHash2的方法一:

2.1,安装LuaRocks(https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Unix)

wget https://luarocks.org/releases/luarocks-3.1.3.tar.gz
tar zxpf luarocks-3.1.3.tar.gz
cd luarocks-3.1.3

# 替换为openresty的安装路径

./configure --prefix=/usr/local/openresty/luajit \--with-lua=/usr/local/openresty/luajit/ \--lua-suffix=jit \--with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
make build
make install

2.2,安装murmurhash2

开源:https://github.com/bungle/lua-resty-murmurhash2

 /usr/local/openresty/luajit/bin/luarocks install lua-resty-murmurhash2

#成功后,/usr/local/openresty/luajit/share/lua/5.1/resty目录下会有murmurhash2.lua

3,安装murmurHash2的方法二:

开源:https://github.com/bungle/lua-resty-murmurhash2

直接将murmurhash2.lua拷贝至/usr/local/openresty/luajit/share/lua/5.1/resty

4,测试代码

location / {content_by_lua_block {local mmh2 = require "resty.murmurhash2"local hash = mmh2("test")ngx.say(hash)
}

# 输出 403862830

原文出自:https://blog.csdn.net/daiyudong2020/article/details/98114812

End;

openresty中应用murmurHash相关推荐

  1. 如何在 OpenResty 中使用 websocket

    如何在 OpenResty 中使用 websocket https://hambut.com/2016/10/13/how-to-use-websocket-in-openresty/ 前言 作为一个 ...

  2. OpenResty中cjson的两种方法

    OpenResty中的cjson库可以完成JSON数据的编码解码等工作. cjson有两个模块:cjson和cjson.safe,前者在解析失败后会抛出异常,而后者则返回nil. 文档地址:https ...

  3. OpenResty中的upstream healthcheck功能沉思录

    综述 healthcheck功能本质上还是个定时器,去定期检查指定upstream组的状态,它发送指定的http请求并解析响应码,去探测upstream中每个peer的存活状态,再结合历史请求记录来判 ...

  4. Openresty中使用LuaJit

    2019独角兽企业重金招聘Python工程师标准>>> 今天在使用Openresty的时候,遇到了一个问题: local resty_sha1 = require "res ...

  5. lua-resty-iputils, 在Openresty中,用于处理IP地址的实用程序函数

    源代码名称:lua-resty-iputils 源代码网址:http://www.github.com/hamishforbes/lua-resty-iputils lua-resty-iputils ...

  6. OpenResty中使用反向代理

    Nginx最开始是作为反向代理被熟知的,基于它的OpenResty的自然也是支持反向代理的,下面我们就来看看它的一些基本用法以及在使用过程中的一些技巧. 一.基本用法 在业务环境中,可能会将OpenR ...

  7. OpenResty中遇到Can't locate Time/HiRes.pm in @INC问题的解决方法

    今天在研究resty这个命令行工具时,执行 resty -h 出现下面的报错 Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local ...

  8. openresty模板html页面,openresty 中使用lua 的页面模板类库template来渲染页面

    动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现.而Lua中也有许多模板引擎,如目前我在使用的lua-resty-template, ...

  9. 在CentOS 6.9 x86_64上玩转OpenResty 1.13.6.1中的resty-cli模块

    resty-cli是OpenResty中命令行工具的集合,其中resty工具是最有用的. 安装好OpenResty之后,resty-cli就会默认安装,以我的安装为例,参见博文 http://blog ...

最新文章

  1. ClassFlow推出全新课堂活动轨迹功能
  2. tomcat server容器解读
  3. 调度Java应用程序中的主体
  4. 算法工程师笔试 -剑指offer-习题详细解答
  5. 动态模型之增压暂停【FunTester测试框架】
  6. c语言随机数 单片机32,自己用C语言写PIC32单片机的serial bootloader
  7. 基于深度学习生成音乐
  8. SVN比较两个文件差异
  9. 鲁大师最新笔记本排行榜,微星 Raider GE76性能最强
  10. 关于namecheap 域名运营商,域名赎回详细步骤
  11. 最新资讯:iPhone 11显示模块更换计划,用于解决触摸问题
  12. 【金融项目】尚融宝项目(十)
  13. php qq远程桌面共享,新手学堂:用VNC实现远程桌面共享的方法
  14. 5000立方米球罐设计
  15. tidefinger(指纹识别)
  16. R语言glm函数构建二分类logistic回归模型、epiDisplay包logistic.display函数获取模型汇总统计信息(自变量初始和调整后的优势比及置信区间,回归系数的Wald检验的p值
  17. 如何判断HTML页面加载完成
  18. 绝对路径,相对路径,和根路径
  19. #define 详解
  20. Shell脚本学习笔记——paste

热门文章

  1. Verilog语言之向量vector和解压缩数组unpacked array
  2. python 画ks曲线_Python绘制KS曲线的实现方法
  3. 找工作-体能修复8-编程-剑指offer-JZ3、JZ4、JZ5、JZ7、JZ8、JZ9、JZ10、JZ11、JZ12、JZ13、JZ14
  4. Mysql中的循环语句
  5. three.js快速入门和实战
  6. 一个无损连接和保持函数依赖性的3nf分解
  7. unity 模拟引力
  8. linux打印机验证密码,HP LaserJet Pro打印机远程管理员密码泄露漏洞
  9. Flink:watermark
  10. Spring Cloud入门系列(1)- Spring生态体系发展史+全系框架介绍