赞
踩
本文主要描述,使用布隆过滤实现高效缓存。文中采用数组做为缓存,如果需要高并发命中,则需将文中的数组换成Redis数据库。
布隆过滤
布隆缓存的创建过程如下:
1,先定义缓存bit数组(BitArray),数组的长度就是缓存数据的最大数量。
2,然后将字符串通过哈希运算,求出它的HashCode。
3,然后将HashCode作为伪随机数生成器(Random)的种子,生成一个小于最大数量的正数x。
4,然后将这x作为缓存数组的索引,将数组[x]的值设置为true。
将获取到的字符串,通过上述前三步运算,计算出数组索引,然后在布隆缓存里取出指定索引的值,如果为True,则缓存存在,可以使用这个字符串去真正的数据缓存中取数据,如果未Fasle,则缓存不存在则去数据库中取数据。
首先建立WinForm项目BloomTest。
然后编写布隆过滤器,代码如下:
public class BloomFilter
{
//布隆缓存数组
public BitArray BloomCache;
//布隆缓存数组的长度
public Int64 BloomCacheLength { get; }
public Int64 HashCount { get; }
/// &l
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。