[发明专利]防空缓存方法和装置有效
申请号: | 201210486847.6 | 申请日: | 2012-11-26 |
公开(公告)号: | CN103838766B | 公开(公告)日: | 2018-04-06 |
发明(设计)人: | 张丹枫 | 申请(专利权)人: | 深圳市腾讯计算机系统有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州华进联合专利商标代理有限公司44224 | 代理人: | 何平,邓云鹏 |
地址: | 518057 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 防空 缓存 方法 装置 | ||
技术领域
本发明涉及数据库查询技术,特别是涉及一种防空缓存方法和装置。
背景技术
数据库中记录有大量数据,为了查询某一条数据在数据库中是否存在,需要进行一次遍历查询,该遍历查询的开销较大,耗费时间较长。若查询的该用户信息不存在,也需进行一次遍历查询,如此会浪费大量的时间以及耗费资源。
为此,若在内存中用防空缓存记录每条数据是否存在,只对存在防空缓存中的数据才到数据库中查询,可有效降低空记录查询带来的开销。传统的防空缓存技术一般采用位图或者布隆过滤器对信息构建数据防空缓存,以达到减少大量底层数据库空查询,减少资源消耗的目的。其中,位图是指在连续的存储空间上,每一位有1或0两个值,表示某一目标的两种不同状态,如图1所示,一个号码的状态采用一位存储空间表示。布隆过滤器是一个有m位的位数组,初始全为0,并有k个各自独立的哈希函数,如图2所示,一个号码的状态采用多位存储空间一起表示。
然而,采用位图构建防空缓存时,在连续的存储空间中,每一位表示一条数据是否被创建,如此占用空间过大,增加了内存负担;采用布隆过滤器构建防空缓存时,在连续的存储空间中,每一条数据通过k个哈希函数,对应到k个不同的位上,这些位共同表示了该条数据列表的状态,如全为1表示该数据列表为非空,不全为1表示该数据列表为空,而布隆过滤器只支持写入,无法删除。
发明内容
基于此,有必要提供一种能减少空间开销且支持数据变更的防空缓存方法。
此外,还有必要提供一种能减少空间开销且支持数据变更的防空缓存装置。
一种防空缓存方法,包括以下步骤:
将数据标识划分为多个区间;
统计每个区间中具有预定功能的数据标识的密集度;
根据所述每个区间的密集度分别配置相应的压缩比,以将每个区间中压缩比数量的数据标识对应一位。
一种防空缓存装置,包括:
划分模块,用于将数据标识划分为多个区间;
统计模块,用于统计每个区间中具有预定功能的数据标识的密集度;
配置模块,用于根据所述每个区间的密集度分别配置相应的压缩比,以将每个区间中压缩比数量的数据标识对应一位。
上述防空缓存方法和装置,通过将数据标识分区并根据每个区的密集度配置相应的压缩比,使得压缩比数量的数据标识对应一位存储空间,节省了存储空间,且因压缩比数量的数据标识对应一位存储空间,并非如布隆过滤器中每个数据标识由随机的多个位表示其存在而不能删除任一位,采用压缩比对应的一位存储空间可以进行相应的变更操作,不会影响其他数据标识的状态表示。
附图说明
图1为位图方式表示一个数据标识的状态示意图;
图2为布隆过滤器表示一个数据标识的状态示意图;
图3为一个实施例中防空缓存方法的流程示意图;
图4为一个实施例中防空缓存方法中执行操作的流程示意图;
图5为一个实施例中读取操作的流程示意图;
图6为一个实施例中写入操作的流程示意图;
图7为一个实施例中删除操作的流程示意图;
图8为一个实施例中防空缓存装置的内部结构示意图;
图9为另一个实施例中防空缓存装置的内部结构示意图;
图10为一个实施例中位置确定模块的内部结构示意图;
图11为另一个实施例中位置确定模块的内部结构示意图;
图12为另一个实施例中位置确定模块的内部结构示意图。
具体实施方式
下面结合具体的实施例及附图对防空缓存方法和装置的技术方案进行详细的描述,以使其更加清楚。
如图3所示,在一个实施例中,一种防空缓存方法,包括以下步骤:
步骤S102,将数据标识划分为多个区间。
具体的,数据标识是用于区分数据唯一性的标志,例如即时通讯帐号、学号、银行卡号、员工工号等,但不限于此。本实施例中,数据标识为即时通讯帐号。将即时通讯帐号按照号码顺序划分为3个区间,例如将10000至9999999划分为一区间,10000000至2099999999划为一区间,21亿至42亿划为一区间。此外,数据标识为学号时,可将1至999划为一区间,1000至2999划为一区间等。
步骤S104,统计每个区间中具有预定功能的数据标识的密集度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯计算机系统有限公司,未经深圳市腾讯计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210486847.6/2.html,转载请声明来源钻瓜专利网。