另一方面,bloom算法1、bloom算法简介1.1、正常系统架构下缓存被破坏后,请求全部进入数据库,进入数据库的请求过多,系统迅速陷入瓶颈崩溃。
1.2、缓存击穿的主要方法有固定id攻击(例如每次以id=-1为条件查询)和uuid攻击(每次以id=不同的负数查询)等。 总之就是使用缓存中没有的键值进行查询,越过缓存层。
1.3、所以,根据这个方式在缓存和数据库之间创建过滤器。 当缓存中没有数据时,进入此过滤器。 过滤器记录数据库中的所有查询条件,如果发现没有条件,它将立即阻止并返回。 但是,由于滤波器保存了大量的条件,占用比较大的空间,所以目前流行采用基于模糊算法的模糊滤波器。
1.4、模糊算法通过容错解决空间占用,也就是说解决了滤波器中数据过多的问题。
1.5、错误率主要提示存在咨询条件,但实际上可能不存在咨询条件; 请告诉我查询条件不存在。 查询条件一定不存在。 如果数组序列号的值为1,则该值可能是与另一个查询条件相对应的结果,因为在散列函数中计算了多个查询条件之后,可能会获得相同的数组序列号。 这意味着该查询条件的结果可能不存在。 如图所示
1.6、解决空间占用是因为多个查询条件可能对应一个数