布隆过滤器(BloomFilter)简介

布隆过滤器在Google Guava 18版本以上的jar包有现成的集成,能够用于缓解缓存穿透数组

由于存在0.03%的误判率,因此适用于可以容忍必定的缓存穿透的场景~~缓存

其原理是基于:多个哈希函数和二进制向量数据结构 服务器

如图若果数据通过两个哈希函数同时命中(二进制数组中为1的为命中,如图 一、b),则为数据在布隆过滤器中存在~~数据结构

使用步骤:多线程

1:首先把须要缓存过滤的数据load到布隆过滤器之中(数据量过大的话,建议多线程去load)函数

2:部署单独一台的布隆过滤器的服务器编码

3:编码层在进入缓存或者DB判断以前,提早使用布隆过滤器判断是否存在,若是存在:则去缓存或则DB中去取数据;若是不存在,则直接返回(由于布隆过滤器存在必定的误判率,因此若是布隆过滤器判断不存在,也有可能会走到缓存或则DB当中去)线程

相关文章
相关标签/搜索