2016-08-04 ruki
最近稍微整理了下tbox的utils模块,发现里面有很多都是一些,之前放置的hash算法,例如:md5, sha1, crc32, adler32啊什么,比较凌乱。 因此我抽时间整理下这些hash算法,打算单独建立个hash算法模块,来放置各种大大小小的hash算法。 顺便把tbox里面用到的一些字符串hash算法,也做了些整理,一并归并到这个新模块中,例如比较常用的一些字符串哈希: bkdr, fnv, fnv-1a, aphash, rshash, djb2, murmur, sdbm, blizzard ... 其中 bkdr 的效果比较好,因此目前作为tbox里面主要的string哈希来用,其他的hash虽然实现 继续阅读 »
2017-08-05 张炎泼
mdtoc start hash表中key的分布规律 当hash表中key和bucket数量一样时(n/b=1): key的数量对3类bucket数量的影响 key的数量对bucket的均匀程度的影响 Load Factor: n/b<0.75 Load Factor: n/b>1 n/b 越大, key的分布越均匀. 计算 每类bucket的数量 空bucket 数量 有1个key的bucket的数量 多个key的bucket key在bucket中分布的均匀程度 通过~~正太~~正态分布来近似 计算最小key数量 x 程序模拟 Reference 继续阅读 »
2015-02-17 张炎泼
There is a hash table: It has b buckets. It has n keys stored in it. We assume that the hash function distributes keys uniformly. A bucket can contain more than 1 keys. 继续阅读 »
2015-02-08 walter lee
【什么是Hash】 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 继续阅读 »
2016-02-03 ruki
Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内。可以用于网络爬虫的url重复过滤、垃圾邮件的过滤等等。 它相比hash容器的一个优势就是,不需要存储元素的实际数据到容器中去来一个个的比较是否存在。 只需要对应的位段来标记是否存在就行了,所以想当节省内存,特别适合海量的数据处理。并且由于省去了存储元素和比较操作,所以性能也比基于hash容器的高了很多。 但是由于bloom filter没有去比较元素,只通过多个hash来判断唯一性,所以存在一定的hash冲突导致误判。误判率的大小由hash函数的个数、hash函数优劣、以及存储的位空间大小共同决定。 继续阅读 »
2017-04-15 Kevin
Hash一致性算法 介绍 安装 介绍 我们知道一台reids机器最大内存是有上限的,现在随着业务的发展,现有一台redis内存不够用,这个时候我们使用n台服务器,那怎么做到key跟服务器的映射问题。 继续阅读 »
2014-11-29 Xie Jingyi
各种坑爹,我也不知道为什么: sudo gedit etc/apt/apt.conf.d/00aptitude 最后加一行:Acquire::CompressionTypes::Order "gz"; 继续阅读 »
2016-09-27 Alex Sun
Hash 哈希函数(散列函数)主要用于生成消息摘要(Message Digest),即将任意大小的数据映射到一个固定大小的数据。最常见的如MD5,SHA1等。 ``` --------- hash function -------------- | input |---------------->| hash value | ``` 在Node中,通过crypto.getHashes()可以查看所支持的哈希算法: js crypto.getHashes() // => [ 'DSA', 'DSA-SHA', 'DSA-SHA1', ... ] 下面是一个MD5的例子: ```js var hash = crypt 继续阅读 »
2016-08-29 ruki
新特性 增加同时等待多个进程接口 增加uuid生成器 增加hash库模块 添加__tb_deprecated__关键字以及配置选项 改进 移动部分utils接口到hash模块 重写random生成器 Bugs修复 修复stdout在vs2015以上版本的兼容性问题 修复进程参数长度限制 继续阅读 »
2016-08-29 ruki
New features Add wait multi-processes interface Add uuid generator Add hash library module Add __tb_deprecated__ keyword and option Changes Move some utils interfaces to the hash module Rewrite random generator Bugs fixed Fix stdout compatibility issue for vs2015 Fix process arguments length limit 继续阅读 »