详解Redis缓存击穿以及解决方案

首页

2018-12-06

以上就是布隆过滤器的计算原理,下面我们进行性能测试,(2)性能测试代码如下:a.新建一个maven工程,引入guava包b.测试一个元素是否属于一个百万元素集合所需耗时输出如下所示:也就是说,判断一个数是否属于一个百万级别的集合,只要就可以完成,性能极佳。

c.误判率的一些概念首先,我们先不对误判率做显示的设置,进行一个测试,代码如下所示:输出结果如下:如果上述代码所示,我们故意取10000个不在过滤器里的值,却还有330个被认为在过滤器里,这说明了误判率为即,在不做任何设置的情况下,默认的误判率为。

下面上源码来证明:接下来我们来看一下,误判率为时,底层维护的bit数组的长度如下图所示:将bloomfilter的构造方法改为:即,此时误判率为。 在这种情况下,底层维护的bit数组的长度如下图所示由此可见,误判率越低,则底层维护的数组越长,占用空间越大。 因此,误判率实际取值,根据服务器所能够承受的负载来决定,不是拍脑袋瞎想的。

(3)实际使用redis伪代码如下所示:优点。