HashTable原理与实现

来源:互联网 发布:童装代理一手货源淘宝 编辑:程序博客网 时间:2024/05/19 19:15
memcached中hashtable部分的源码,hash部分的源码主要分布在assoc.h/c、hash.h/c中,总得来说代码比较简单,这里就稍微介绍一下。

         hashtable通常包括哈希函数和解决冲突的方法两个最主要的因素,memcached使用的哈希函数为Bob Jenkins在1996年发明的,定义位于hash.h中,实现在hash.c中,作者与2006年时提出另一个新的hash算法,其具有更快的速度(近2倍)和更大的吞吐量,详情请参照:http://burtleburtle.net/bob/hash/doobs.html


解决冲突的方法,memcached中采用了链地址法(或拉链法),从数据结构书中截取的一个采用链地址法(哈希函数为:key MOD 13)解决冲突的示意图:

参考:memcached源码学习-hashtable


网上一些哈希实现可以参考:

C语言的HashTable简单实现

HashTable的一个详细实现

深入理解HashMap



原创粉丝点击