一种缓存压缩方法及其系统技术方案

技术编号:38462601 阅读:10 留言:0更新日期:2023-08-11 14:39
一种缓存压缩方法,所述方法步骤如下:步骤1:根据不同业务生成若干个初始布隆过滤器;步骤2:创建新的公共布隆过滤器和一个或多个子布隆过滤器,遍历将步骤1中所有的初始布隆过滤器的位数组,将对应位置的键值对齐,然后按照策略提取至公共布隆过滤器中,差异部分分别存储至子布隆过滤器中;步骤3:进行元素查询,首先在子布隆过滤器中进行查询元素,如果查询的元素在子布隆过滤器中存在,则在元素所在的业务存储中查询,如果查询的元素不存在,则在公共布隆过滤器中查询,并返回结果,本发明专利技术提供的一种缓存压缩方法,能够节约布隆过滤器内容使用量,无需额外增加服务器就能解决缓存服务器内存不足的问题,成本低。成本低。成本低。

【技术实现步骤摘要】
一种缓存压缩方法及其系统


[0001]本专利技术涉及存储
,特别是一种缓存压缩方法及其系统。

技术介绍

[0002]目前很多业务需要通过使用布隆过滤器来防止请求穿透到数据库,但是,为了支持上亿甚至十亿的数据,并且减少误判率,每个布隆过滤器都需要很大的空间存储,从而导致缓存服务器内存不足。
[0003]目前是采用增加服务器的方式解决内存不足,成本较高。

技术实现思路

[0004]为克服上述布隆过滤器空间存储量大而导致缓存服务器内存不足的问题,本专利技术的目的是提供一种缓存压缩方法及其系统,能够节约布隆过滤器内容使用量。
[0005]本专利技术采用以下方案实现:
[0006]一种缓存压缩方法,所述方法步骤如下:
[0007]步骤1:根据不同业务生成若干个初始布隆过滤器;
[0008]步骤2:创建新的公共布隆过滤器和一个或多个子布隆过滤器,遍历将步骤1中所有的初始布隆过滤器的位数组,将对应位置的键值对齐,然后按照策略提取至公共布隆过滤器中,差异部分分别存储至子布隆过滤器中,所述策略为直接把第一个布隆过滤器内容当做公共布隆过滤器,或提取所有初始布隆过滤器的键值中相同部分当做公共布隆过滤器。
[0009]步骤3:进行元素查询,首先在子布隆过滤器中进行查询元素,如果查询的元素在子布隆过滤器中存在,则在元素所在的业务存储中查询,如果查询的元素不存在,则在公共布隆过滤器中查询,并返回结果。
[0010]进一步的,步骤2进一步具体为:步骤21:创建一个新的布隆过滤器,即公共布隆过滤器,公共布隆过滤器的大小应与初始布隆过滤器相同,且公共布隆过滤器的所有位置的值都设为0;
[0011]步骤22:遍历初始布隆过滤器的位数组,检查对应位置的值,如果所有的初始布隆过滤器在同一位置的值均为1,则在公共布隆过滤器中将对应位置的值设为1,表示查询元素在公共布隆过滤器中;
[0012]步骤23:创建一个或多个子布隆过滤器,用于存储初始布隆过滤器中独特的元素,子布隆过滤器的1初始大小为空;
[0013]步骤24:遍历初始布隆过滤器的位数组,如果在其中一个初始布隆过滤器中某一位置的值为1,而在另外初始布隆过滤器中对应位置的值为0,则将子布隆过滤器在位置的位设为1,这样,子布隆过滤器中的1表示元素只在至少一个初始布隆过滤器中存在。
[0014]进一步的,当需要检查某个元素是否存在时,首先在子布隆过滤器中进行查询元素,如果查询到1表示元素存在,则需要在元素所在的业务存储中查询;如果子布隆过滤器
查到0表示元素不存在,则在公共布隆过滤器中查询,如果公共布隆过滤器查询到0元素表示元素不存在,则返回结果不存在,如果查询到1则说明元素存在,则需要在元素所在的业务存储中查询。
[0015]一种缓存压缩系统,所述系统包括生成模块、分类模块、查询模块;
[0016]生成模块用于根据不同业务生成若干个初始布隆过滤器;
[0017]分类模块用于创建新的公共布隆过滤器和一个或多个子布隆过滤器,遍历将生成模块中所有的初始布隆过滤器的位数组,将对应位置的键值对齐,然后按照策略提取至公共布隆过滤器中,差异部分分别存储至子布隆过滤器中,所述策略为直接把第一个布隆过滤器内容当做公共布隆过滤器,或提取所有初始布隆过滤器的键值中相同部分当做公共布隆过滤器。
[0018]查询模块用于进行元素查询,首先在子布隆过滤器中进行查询元素,如果子布隆过滤器表示该元素存在,则返回结果;否则,在公共布隆过滤器中查询。如果公共布隆过滤器表示元素存在,则返回结果;否则,我们可以确定该元素不在两个初始布隆过滤器的并集中。
[0019]进一步的,所述分类模块进一步具体为:
[0020]创建一个新的布隆过滤器,即公共布隆过滤器,公共布隆过滤器的大小应与初始布隆过滤器相同,且公共布隆过滤器的所有位置的值都设为0;
[0021]遍历初始布隆过滤器的位数组,检查对应位置的值,如果所有的初始布隆过滤器在同一位置的值均为1,则在公共布隆过滤器中将对应位置的值设为1,表示查询元素在公共布隆过滤器中;
[0022]创建一个或多个子布隆过滤器,用于存储初始布隆过滤器中独特的元素,子布隆过滤器的1初始大小为空;
[0023]遍历初始布隆过滤器的位数组,如果在其中一个初始布隆过滤器中某一位置的值为1,而在另外初始布隆过滤器中对应位置的值为0,则将子布隆过滤器在位置的位设为1,这样,子布隆过滤器中的1表示元素只在至少一个初始布隆过滤器中存在。
[0024]进一步的,查询模块进一步具体为:当需要检查某个元素是否存在时,首先在子布隆过滤器中进行查询元素,如果查询到1表示元素存在,则需要在元素所在的业务存储中查询;如果子布隆过滤器查到0表示元素不存在,则在公共布隆过滤器中查询,如果公共布隆过滤器查询到0元素表示元素不存在,则返回结果不存在,如果查询到1则说明元素存在,则需要在元素所在的业务存储中查询。
[0025]本专利技术的有益效果在于:本专利技术的目的是提供一种缓存压缩方法及其系统,能够节约布隆过滤器内容使用量,无需额外增加服务器就能解决缓存服务器内存不足的问题,成本低。
附图说明
[0026]图1为本专利技术方法的示意图;
[0027]图2为本专利技术系统的结构框图;
具体实施方式
[0028]下面结合附图对本专利技术做进一步说明。
[0029]请参见图1,一种缓存压缩方法,所述方法步骤如下:
[0030]步骤1:根据不同业务生成若干个初始布隆过滤器;
[0031]步骤2:创建新的公共布隆过滤器和一个或多个子布隆过滤器,遍历将步骤1中所有的初始布隆过滤器的位数组,将对应位置的键值对齐,然后按照策略提取至公共布隆过滤器中,差异部分分别存储至子布隆过滤器中,所述策略为直接把第一个布隆过滤器内容当做公共布隆过滤器,或提取所有初始布隆过滤器的键值中相同部分当做公共布隆过滤器。
[0032]步骤3:进行元素查询,首先在子布隆过滤器中进行查询元素,如果查询的元素在子布隆过滤器中存在,则在元素所在的业务存储中查询,如果查询的元素不存在,则在公共布隆过滤器中查询,并返回结果。
[0033]下面结合一具体实施例来对本专利技术进一步说明:
[0034]一种缓存压缩方法,所述方法包括以下步骤:
[0035]步骤一:根据不同的业务生成各自的布隆过滤器;
[0036]如表1.1,表1.2所示有两个初始布隆过滤器,分别存储了两个业务的元素;
[0037]表1.1、布隆过滤器1
[0038]000010000020000031
[0039]表1.2、布隆过滤器2
[0040]000011000020000030
[0041]步骤二:如表2.1所示的初始公共布隆过滤器。
[0042]创建一个新的布隆过滤器,即公共布隆过滤器,公共布隆过滤器的大小应与初始布隆过滤器相同,且公共布隆过滤器的所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存压缩方法,其特征在于,所述方法步骤如下:步骤1:根据不同业务生成若干个初始布隆过滤器;步骤2:创建新的公共布隆过滤器和一个或多个子布隆过滤器,遍历将步骤1中所有的初始布隆过滤器的位数组,将对应位置的键值对齐,然后按照策略提取至公共布隆过滤器中,差异部分分别存储至子布隆过滤器中,所述策略为直接把第一个布隆过滤器内容当做公共布隆过滤器,或提取所有初始布隆过滤器的键值中相同部分当做公共布隆过滤器。步骤3:进行元素查询,首先在子布隆过滤器中进行查询元素,如果查询的元素在子布隆过滤器中存在,则在元素所在的业务存储中查询,如果查询的元素不存在,则在公共布隆过滤器中查询,并返回结果。2.根据权利要求1所述的一种缓存压缩方法,其特征在于,步骤2进一步具体为:步骤21:创建一个新的布隆过滤器,即公共布隆过滤器,公共布隆过滤器的大小应与初始布隆过滤器相同,且公共布隆过滤器的所有位置的值都设为0;步骤22:直接将第一个初始布隆过滤器键值赋值给公共布隆过滤器,或遍历初始布隆过滤器的位数组,检查对应位置的值,如果所有的初始布隆过滤器在同一位置的值均为1,则在公共布隆过滤器中将对应位置的值设为1,表示查询元素在公共布隆过滤器中;步骤23:创建一个或多个子布隆过滤器,用于存储初始布隆过滤器中独特的元素,子布隆过滤器的1初始大小为空;步骤24:遍历初始布隆过滤器的位数组,如果在其中一个初始布隆过滤器中某一位置的值为1,而在另外初始布隆过滤器中对应位置的值为0,则将子布隆过滤器在位置的位设为1,这样,子布隆过滤器中的1表示元素只在至少一个初始布隆过滤器中存在。3.根据权利要求2所述的一种缓存压缩方法,其特征在于,当需要检查某个元素是否存在时,首先在子布隆过滤器中进行查询,如果查询到1表示元素存在,则需要在元素所在的业务存储中查询;如果子布隆过滤器查到0表示元素不存在,则在公共布隆过滤器中查询,如果公共布隆过滤器查询到0元素表示元素不存在,则返回结果不存在,如果查询到1则说明元素存在,则需要在元素所在的业务存储中查询。4.一种缓存压缩系统,其特征在于,所述系统包括生成模...

【专利技术属性】
技术研发人员:刘德建陈丛亮李佳
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1