【技术实现步骤摘要】
一种基于布隆过滤器实现数据查询的方法、设备及介质
[0001]本申请涉及数据处理
,尤其涉及一种基于布隆过滤器实现数据查询的方法、设备及介质。
技术介绍
[0002]在Web开发设计中,业务后端常常会与关系型数据库相关联。并且,在请求查询关系型数据库中的某些信息时,有很多请求对应的数据可能在数据库中并不存在,那么数据库中不存在的数据对应的请求就是冗余的。此时,在数据请求量比较大的情况下冗余的请求就会影响系统的性能,甚至还可能会造成系统宕机。目前,在遇到请求冗余的情况下,普遍会使用布隆过滤器来处理冗余的请求。
[0003]但是,传统的布隆过滤器在对冗余请求进行处理时,由于布隆过滤器的误判,无法将数据库中不存在的数据对应的查询请求认定为冗余请求,继续将该查询请求发送至数据库进行数据查询,此时无法实现对数据库中不存在的数据的查询,增加了数据库的查询压力,降低了数据的查询效率。
技术实现思路
[0004]本申请实施例提供了一种基于布隆过滤器实现数据查询的方法、设备及介质,用以解决现有技术通过布隆过滤器处理冗余请求时,布隆过滤器无法正确判断数据库中是否存在请求对应的数据的技术问题。
[0005]一方面,本申请实施例提供了一种基于布隆过滤器实现数据查询的方法,包括:
[0006]接收Web端向数据库发送的查询请求,并确定出所述查询请求中的请求数据标识;
[0007]基于布隆过滤器并通过至少一种哈希算法,计算所述请求数据标识对应的至少一个哈希值,并根据所述至少一个哈希值对应的位 ...
【技术保护点】
【技术特征摘要】
1.一种基于布隆过滤器实现数据查询的方法,其特征在于,所述方法包括:接收Web端向数据库发送的查询请求,并确定出所述查询请求中的请求数据标识;基于布隆过滤器并通过至少一种哈希算法,计算所述请求数据标识对应的至少一个哈希值,并根据所述至少一个哈希值对应的位点信息,确定Redis缓存中是否包含所述请求数据标识对应的位点信息;若确定所述Redis缓存中包含所述请求数据标识对应的位点信息,则将所述查询请求发送至数据库,并确定所述请求数据标识对应的至少一个位点在所述数据库的数组中对应的数值是否为预设目标值;其中,数据的一个哈希值对应位图中的一个位点,所述预设预设目标值用于指示所述位点不为空;在所述数据库的数组中确定所述至少一个位点对应的数值为预设目标值的情况下,根据所述请求数据标识对应的位点信息,在对应的位点中查询并获取所述请求数据标识对应的数据,以实现对所述请求数据标识对应数据的查询。2.根据权利要求1所述的一种基于布隆过滤器实现数据查询的方法,其特征在于,所述接收Web端向数据库发送的查询请求之前,所述方法还包括:获取需要存储于所述数据库中的若干个待存储数据,并在所述数据库中为所述若干个待存储数据配置对应的数组;基于一级布隆过滤器并通过至少一个一级哈希算法,计算待存储数据对应的至少一个一级哈希值,并确定所述至少一个一级哈希值,在所述数据库中对应的至少一个一级位点;在所述数据库的数组中获取所述至少一个一级位点对应的至少一个数值,并根据所述至少一个数值,确定所述至少一个一级位点是否为空;若是,则将所述待存储数据存储至对应的一级位点中,完成对所述待存储数据的存储。3.根据权利要求2所述的一种基于布隆过滤器实现数据查询的方法,其特征在于,所述根据所述至少一个数值,确定所述至少一个一级位点是否为空之后,所述方法还包括:若所述至少一个一级位点中的所有一级位点均不为空,则基于二级布隆过滤器并通过至少一个二级哈希算法,计算所述待存储数据对应的至少一个二级哈希值,并确定出所述至少一个二级哈希值在数据库中对应的至少一个二级位点;在所述数据库的数组中获取所述至少一个二级位点对应的至少一个数值,以确定所述至少一个二级位点是否为空;若是,则将所述待存储数据存储至对应的二级位点中,完成对所述待存储数据的存储。4.根据权利要求3所述的一种基于布隆过滤器实现数据查询的方法,其特征在于,所述在所述数据库的数组中获取所述至少一个二级位点对应的至少一个数值,以确定所述至少一个二级位点是否为空之后,所述方法还包括:若所述至少一个二级位点中的所有二级位点均不为空,则获取所述至少一个二级位点中所有二级位点对应的删除次数,并将所述所有二级位点对应的删除次数分别与预设阈值进行比较;确定出删除次数小于所述预设阈值的二级位点,并从所述删除次数小于所述预设阈值的二级位点中确定一个二级位点;将确定出的所述二级位点中存储的数据删除,并将所述待存储数据存储至所述确定出的二级位点中。
5.根据...
【专利技术属性】
技术研发人员:彭志建,
申请(专利权)人:山东浪潮爱购云链信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。