天元建设集团有限公司汇票信誉,广州排前三的seo公司,云计算培训费用多少钱,微信网站开发公司其实布隆过滤器本质上要解决的问题#xff0c;就是防止很多没有意义的、恶意的请求穿透Redis#xff08;因为Redis中没有数据#xff09;直接打入到DB。它是Redis中的一个modules#xff0c;其实可以理解为一个插件#xff0c;用来拓展实现额外的功能。
可以简单理解布隆…其实布隆过滤器本质上要解决的问题就是防止很多没有意义的、恶意的请求穿透Redis因为Redis中没有数据直接打入到DB。它是Redis中的一个modules其实可以理解为一个插件用来拓展实现额外的功能。
可以简单理解布隆过滤器的功能它就是记录了一份DB数据然后请求过来会优先通过布隆过滤器进行判断当前请求的数据是否存在如果存在数据则意味着数据库确实存在这个数据则放行到DB中。如果不存在数据则意味着这个请求的数据在数据库也是没有的则不放行到数据库 布隆过滤器原理
布隆过滤器本身是一个算法用来判断一个元素是否在一个集合。因为不可能蠢到真的记录一份完整的DB数据的这种算法由一个二进制数组和一个Hash算法组成 误判问题
因为通过Hash算法进行计算可能存在不同的元素计算后得到hash值相同所以hash冲突是误判问题的本质。hash计算后的数据在数据组上但不一定在数据库hash计算后的数据不在数组上就一定不在数据库
所以说布隆过滤器是一个概率型的算法有一定的误差但是它可以过滤大部分数据请求少部分的与因为误差进入数据库。
解决方式
增大数组容量让Hash冲突的概率降低。增加Hash函数多个hash函数来计算hash值降低冲突概率