CN113779453A - 缓存更新方法和装置 - Google Patents
缓存更新方法和装置 Download PDFInfo
- Publication number
- CN113779453A CN113779453A CN202110013570.4A CN202110013570A CN113779453A CN 113779453 A CN113779453 A CN 113779453A CN 202110013570 A CN202110013570 A CN 202110013570A CN 113779453 A CN113779453 A CN 113779453A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- target data
- data set
- access frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006870 function Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 20
- 238000003672 processing method Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了缓存更新方法和装置,具体实现方案为:响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系;对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,其中,目标数据集用于表征数据中各个访问频率大于预设值的数据的集合;基于存储的目标数据集,对与目标数据集对应的缓存进行更新。该方案实现了一种根据热点数据进行缓存更新的方法。
Description
技术领域
本申请的实施例涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及缓存更新方法和装置。
背景技术
现有缓存更新技术一般是根据时间过期或者基于请求访问被动更新本地缓存数据。随着互联网技术发展和互联网应用的复杂化,为了提升用户体验,后端系统对用户请求的响应时间要求越来越高,为了大幅提升接口性能各种缓存框架被大量应用到了各个系统中。
常用的缓存更新技术包括两种:一种是本地缓存方案,即根据请求构造缓存key,从本地缓存获取数据,如果获取到则返回,获取不到或者数据已过期则进行远程调用获取数据,并更新本地缓存;另一种是分布式缓存方案,即根据请求构造缓存key,从分布式缓存服务端获取数据,如果获取到则返回,获取不到或者数据已过期则进行远程调用获取数据,并更新分布式缓存。
发明内容
本申请提供了一种缓存更新方法、装置、设备以及存储介质。
根据本申请的第一方面,提供了一种缓存更新方法,该方法包括:响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系;对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,其中,目标数据集用于表征数据中各个访问频率大于预设值的数据的集合;基于存储的目标数据集,对与目标数据集对应的缓存进行更新。
在一些实施例中,数据以多维位数组表示,多维位数组用于表征各个哈希函数与数据的访问频率之间的对应关系。
在一些实施例中,数据的记录过程如下:构建与更新请求对应的缓存key;基于缓存key值的各个运算结果,记录与各个运算结果对应的各个访问频率,生成与各个访问频率对应的数据,其中,各个运算结果基于对缓存key值进行各个哈希函数的运算而得到。
在一些实施例中,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,包括:基于每个数据中各个访问频率的比对结果,确定与每个数据对应的第一访问频率;根据每个第一访问频率与阈值的对比结果,得到与所有比对结果对应的目标数据集,并将目标数据集进行本地存储。
在一些实施例中,基于存储的目标数据集,对与目标数据集对应的缓存进行更新,包括:基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新,其中,更新方法用于表征按第一时间对更新请求的时长和/或目标数据集的存储空间进行判断,缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。
在一些实施例中,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,包括:基于预设的第二时间,利用数据处理方法对每个数据中各个访问频率进行转换,得到转换后的所有数据对应的目标数据集,其中,数据处理方法用于表征对每个数据中各个访问频率值进行减半。
根据本申请的第二方面,提供了一种缓存更新装置,包括:获取单元,被配置成响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系;统计单元,被配置成对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,其中,目标数据集用于表征数据中各个访问频率大于预设值的数据的集合;第一更新单元,被配置成基于存储的目标数据集,对与目标数据集对应的缓存进行更新。
在一些实施例中,获取单元中的数据以多维位数组表示,多维位数组用于表征各个哈希函数与数据的访问频率之间的对应关系。
在一些实施例中,获取单元中的数据通过如下模块记录得到:构建模块,被配置成构建与更新请求对应的缓存key;记录模块,被配置成基于缓存key值的各个运算结果,记录与各个运算结果对应的各个访问频率,生成与各个访问频率对应的数据,其中,各个运算结果基于对缓存key值进行各个哈希函数的运算而得到。
在一些实施例中,统计单元,包括:第一确定模块,被配置成基于每个数据中各个访问频率的比对结果,确定与每个数据对应的第一访问频率;第二确定模块,被配置成根据每个第一访问频率与阈值的对比结果,得到与所有比对结果对应的目标数据集,并将目标数据集进行本地存储。
在一些实施例中,第一更新单元进一步被配置成基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新,其中,更新方法用于表征按第一时间对更新请求的时长和/或目标数据集的存储空间进行判断,缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。
在一些实施例中,统计单元还包括:转换模块,被配置成基于预设的第二时间,利用数据处理方法对每个数据中各个访问频率进行转换,得到转换后的所有数据对应的目标数据集,其中,数据处理方法用于表征对每个数据中各个访问频率值进行减半。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
根据本申请的第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
根据本申请的技术采用响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,基于存储的目标数据集,对与目标数据集对应的缓存进行更新,解决了现有缓存技术中基于全量缓存数据进行更新,无法分辨热点和非热点数据进行有针对性的更新的问题,以及根据请求判断缓存数据是否过期进行被动更新,导致接口性能波动较大的问题。采用多种hash运算记录数据访问频率,有效提升了频率统计的准确性,通过对每个数据中各个访问频率进行统计,得到目标数据集(即热点数据集),实现了一种根据热点数据进行缓存更新的方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。
图1是根据本申请的缓存更新方法的第一实施例的示意图;
图2是可以实现本申请实施例的缓存更新方法的场景图;
图3是根据本申请的缓存更新方法的第二实施例的示意图;
图4是根据本申请的缓存更新装置的一个实施例的结构示意图;
图5是用来实现本申请实施例的缓存更新方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的缓存更新方法的第一实施例的示意图100。该缓存更新方法,包括以下步骤:
步骤101,响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据。
在本实施例中,当执行主体(例如服务器)接收到缓存更新请求时,可以通过有线连接或无线连接的方式从本地或远端设备上获取与更新请求对应的预先记录的各个数据,获取的过程可以先从本地获取,若获取不到则从远端设备上再次获取。数据可以用于表征各个哈希函数与数据的访问频率之间的对应关系,各个哈希函数各不相同。
在本实施例的一些可选的实现方式中,数据的记录过程如下:构建与更新请求对应的缓存key;基于缓存key值的各个运算结果,记录与各个运算结果对应的各个访问频率,生成与各个访问频率对应的数据,其中,各个运算结果基于对缓存key值进行各个哈希函数的运算而得到。通过Count-Min Sketch位图数据结构存储缓存key对应的hash值对位图容量取模的数据,不直接存储缓存key,减少了缓存频率统计数据存储量。通过多种hash运算记录数据访问频率,有效提升了频率统计的准确性。
举例进一步说明,数据采用二维数组记录数据访问频率,其中横轴代表数组长度,纵轴代表hash函数的个数。缓存key首先通过第一哈希函数,然后对bit位取余,得到缓存在数组中的位置,然后将该位置数据+1得到该缓存针对第一哈希函数的访问频率;同理依次计算剩余几个哈希函数并对数组长度取余并记录缓存key的访问频率。多次取余并记录缓存访问频率能有效降低由于hash冲突导致缓存频率统计不准确的问题。通过使用bit位数组记录数据访问频率,将请求缓存key通过hash运算计算出缓存所在数组下标位置,将该位置数据记录+1,数组采用多哈希运算,多维数组记录,降低了hash频率。
步骤102,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集。
在本实施例中,执行主体可以对步骤101获取到的每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集。目标数据集可以用于表征数据中各个访问频率大于预设值的数据的集合。预设值可以基于实际业务需求预先设定,比如预设值可以为预先设定的判断是否为热点数据的阈值。
步骤103,基于存储的目标数据集,对与目标数据集对应的缓存进行更新。
在本实施例中,执行主体可以基于已经存储的目标数据集,对与目标数据集对应的缓存进行更新。目标数据集可以存储于本地也可以存储于远端服务器。
在本实施例的一些可选的实现方式中,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,包括:基于预设的第二时间,利用数据处理方法对每个数据中各个访问频率进行转换,得到转换后的所有数据对应的目标数据集,其中,数据处理方法用于表征对每个数据中各个访问频率值进行减半。采用定时半衰减策略清空非热点缓存key来提升热点数据的统计准确性,有效降低了hash冲突导致的频率统计不准确。
例如,在缓存key数据量过大时,为了保证多维数组中由于缓存key存储太多造成hash冲突频率增加,每间隔一定时间对多维数组中所有bit位置记录大于0的数据记录进行半衰减,数据记录减半并向上取整。
需要说明的是,上述缓存更新技术是目前广泛研究和应用的公知技术,在此不再赘述。
继续参见图2,本实施例的缓存更新方法200运行于电子设备201中。当电子设备201接收到缓存更新请求时,获取与更新请求对应的预先记录的各个数据202,然后电子设备201对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集203,最后电子设备201基于存储的目标数据集,对与目标数据集对应的缓存进行更新204。其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系,目标数据集用于表征数据中各个访问频率大于预设值的数据的集合。
本申请的上述实施例提供的缓存更新方法采用响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,基于存储的目标数据集,对与目标数据集对应的缓存进行更新,解决了现有缓存技术中基于全量缓存数据进行更新,无法分辨热点和非热点数据进行有针对性的更新的问题,以及根据请求判断缓存数据是否过期进行被动更新,导致接口性能波动较大的问题。采用多种hash运算记录数据访问频率,有效提升了频率统计的准确性,通过对每个数据中各个访问频率进行分析统计,得到目标数据集(即热点数据集),实现了一种根据热点数据进行缓存更新的方法。
进一步参考图3,其示出了缓存更新方法的第二实施例的示意图300。该方法的流程包括以下步骤:
步骤301,响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据。
在本实施例中,当执行主体接收到缓存更新请求时,可以通过有线连接或无线连接的方式从本地或远端设备上获取与更新请求对应的预先记录的各个数据。数据以多维位数组表示,多维位数组用于表征各个哈希函数与数据的访问频率之间的对应关系,各个哈希函数各不相同。
步骤302,基于每个数据中各个访问频率的比对结果,确定与每个数据对应的第一访问频率。
在本实施例中,执行主体可以将步骤301中获得的每个数据中各个访问频率进行比对,得到比对后的最小访问频率,作为与每个数据对应的第一访问频率。
步骤303,根据每个第一访问频率与阈值的对比结果,得到与所有比对结果对应的目标数据集,并将目标数据集进行本地存储。
在本实施例中,执行主体可以将每个第一访问频率与阈值进行对比,根据对比结果,将大于阈值的每个第一访问频率对应的数据作为目标数据,得到与所有比对结果对应的目标数据集,并将目标数据集存储于本地,以便后续从本地调用。阈值可以表征作为热点数据的访问频率的最小值,阈值可以基于各种需求预先设定。
步骤304,基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新。
在本实施例中,执行主体可以基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新。更新方法用于表征按第一时间对更新请求的时长和/或目标数据集的存储空间进行判断,缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。第一时间预先设定。
从图3中可以看出,与图1对应的实施例相比,本实施例中的缓存更新方法的示意图300采用多维位数组的多种hash运算记录数据访问频率,基于位运算效率高的优势,缓存key通过hash运算后定位到多维数组位置,只存储请求频率不存储请求缓存key大大节省了存储空间,有效提升了频率统计的准确性的同时,降低了全量缓存频率的内存消耗。采用基于每个数据中各个访问频率的比对结果,确定与每个数据对应的第一访问频率,根据每个第一访问频率与阈值的对比结果,得到与所有比对结果对应的目标数据集,并将目标数据集进行本地存储,基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新,更新方法用于表征按第一时间对更新请求的时长和/或目标数据集的存储空间进行判断,缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存,根据热点数据访问频率前置更新缓存的热点数据,而不是被动的进行更新,防止热点数据过期导致的性能问题。实现了根据多维位数组算法统计的数据访问频率,统计热点数据,根据热点数据缓存过期时间异步前置更新本地缓存和分布式缓存,避免热点数据缓存过期后引起缓存穿透导致的性能波动。
进一步参考图4,作为对上述图1~3所示方法的实现,本申请提供了一种缓存更新装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的缓存更新装置400包括:获取单元401、统计单元402和第一更新单元403,其中,获取单元,被配置成响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系;统计单元,被配置成对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,其中,目标数据集用于表征数据中各个访问频率大于预设值的数据的集合;第一更新单元,被配置成基于存储的目标数据集,对与目标数据集对应的缓存进行更新。
在本实施例中,缓存更新装置400的获取单元401、统计单元402和第一更新单元403的具体处理及其所带来的技术效果可分别参考图1对应的实施例中的步骤101到步骤103的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,获取单元中的数据以多维位数组表示,多维位数组用于表征各个哈希函数与数据的访问频率之间的对应关系。
在本实施例的一些可选的实现方式中,获取单元中的数据通过如下模块记录得到:构建模块,被配置成构建与更新请求对应的缓存key;记录模块,被配置成基于缓存key值的各个运算结果,记录与各个运算结果对应的各个访问频率,生成与各个访问频率对应的数据,其中,各个运算结果基于对缓存key值进行各个哈希函数的运算而得到。
在本实施例的一些可选的实现方式中,统计单元,包括:第一确定模块,被配置成基于每个数据中各个访问频率的比对结果,确定与每个数据对应的第一访问频率;第二确定模块,被配置成根据每个第一访问频率与阈值的对比结果,得到与所有比对结果对应的目标数据集,并将目标数据集进行本地存储。
在本实施例的一些可选的实现方式中,第一更新单元进一步被配置成基于存储的目标数据集,利用更新方法对与目标数据集对应的缓存进行更新,其中,更新方法用于表征按第一时间对更新请求的时长和/或目标数据集的存储空间进行判断,缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。
在本实施例的一些可选的实现方式中,统计单元还包括:转换模块,被配置成基于预设的第二时间,利用数据处理方法对每个数据中各个访问频率进行转换,得到转换后的所有数据对应的目标数据集,其中,数据处理方法用于表征对每个数据中各个访问频率值进行减半。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的缓存更新方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的缓存更新方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的缓存更新方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的缓存更新方法对应的程序指令/模块(例如,附图4所示的获取单元401、统计单元402和第一更新单元403)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的缓存更新方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据缓存更新电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至缓存更新电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
缓存更新方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与缓存更新电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案采用响应于接收到缓存更新请求,获取与更新请求对应的预先记录的各个数据,其中,数据用于表征各个哈希函数与数据的访问频率之间的对应关系,对每个数据中各个访问频率进行统计,得到与所有数据对应的目标数据集,并存储目标数据集,基于存储的目标数据集,对与目标数据集对应的缓存进行更新,解决了现有缓存技术中基于全量缓存数据进行更新,无法分辨热点和非热点数据进行有针对性的更新的问题,以及根据请求判断缓存数据是否过期进行被动更新,导致接口性能波动较大的问题。采用多种hash运算记录数据访问频率,有效提升了频率统计的准确性,通过对每个数据中各个访问频率进行分析统计,得到目标数据集(即热点数据集),实现了一种根据热点数据进行缓存更新的方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种缓存更新方法,包括:
响应于接收到缓存更新请求,获取与所述更新请求对应的预先记录的各个数据,其中,所述数据用于表征各个哈希函数与所述数据的访问频率之间的对应关系;
对每个所述数据中各个所述访问频率进行统计,得到与所有所述数据对应的目标数据集,并存储所述目标数据集,其中,所述目标数据集用于表征所述数据中各个所述访问频率大于预设值的所述数据的集合;
基于存储的所述目标数据集,对与所述目标数据集对应的缓存进行更新。
2.根据权利要求1所述方法,其中,所述数据以多维位数组表示,所述多维位数组用于表征各个哈希函数与所述数据的访问频率之间的对应关系。
3.根据权利要求2所述方法,其中,所述数据的记录过程如下:
构建与所述更新请求对应的缓存key;
基于所述缓存key值的各个运算结果,记录与所述各个运算结果对应的各个访问频率,生成与所述各个访问频率对应的数据,其中,所述各个运算结果基于对所述缓存key值进行所述各个哈希函数的运算而得到。
4.根据权利要求1所述方法,其中,所述对每个所述数据中各个所述访问频率进行统计,得到与所有所述数据对应的目标数据集,并存储所述目标数据集,包括:
基于每个所述数据中各个所述访问频率的比对结果,确定与每个所述数据对应的第一访问频率;
根据每个所述第一访问频率与所述阈值的对比结果,得到与所有所述比对结果对应的所述目标数据集,并将所述目标数据集进行本地存储。
5.根据权利要求1所述方法,其中,所述基于存储的所述目标数据集,对与所述目标数据集对应的缓存进行更新,包括:
基于存储的所述目标数据集,利用更新方法对与所述目标数据集对应的缓存进行更新,其中,所述更新方法用于表征按第一时间对所述更新请求的时长和/或所述目标数据集的存储空间进行判断,所述缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。
6.根据权利要求1所述方法,其中,所述对每个所述数据中各个所述访问频率进行统计,得到与所有所述数据对应的目标数据集,还包括:
基于预设的第二时间,利用数据处理方法对每个所述数据中各个所述访问频率进行转换,得到转换后的所有所述数据对应的目标数据集,其中,所述数据处理方法用于表征对每个所述数据中各个所述访问频率值进行减半。
7.一种缓存更新装置,包括:
获取单元,被配置成响应于接收到缓存更新请求,获取与所述更新请求对应的预先记录的各个数据,其中,所述数据用于表征各个哈希函数与所述数据的访问频率之间的对应关系;
统计单元,被配置成对每个所述数据中各个所述访问频率进行统计,得到与所有所述数据对应的目标数据集,并存储所述目标数据集,其中,所述目标数据集用于表征所述数据中各个所述访问频率大于预设值的所述数据的集合;
第一更新单元,被配置成基于存储的所述目标数据集,对与所述目标数据集对应的缓存进行更新。
8.根据权利要求1所述装置,其中,所述获取单元中的所述数据以多维位数组表示,所述多维位数组用于表征各个哈希函数与所述数据的访问频率之间的对应关系。
9.根据权利要求8所述装置,其中,所述获取单元中的所述数据通过如下模块记录得到:
构建模块,被配置成构建与所述更新请求对应的缓存key;
记录模块,被配置成基于所述缓存key值的各个运算结果,记录与所述各个运算结果对应的各个访问频率,生成与所述各个访问频率对应的数据,其中,所述各个运算结果基于对所述缓存key值进行所述各个哈希函数的运算而得到。
10.根据权利要求7所述装置,其中,所述统计单元,包括:
第一确定模块,被配置成基于每个所述数据中各个所述访问频率的比对结果,确定与每个所述数据对应的第一访问频率;
第二确定模块,被配置成根据每个所述第一访问频率与所述阈值的对比结果,得到与所有所述比对结果对应的所述目标数据集,并将所述目标数据集进行本地存储。
11.根据权利要求7所述装置,其中,所述第一更新单元进一步被配置成基于存储的所述目标数据集,利用更新方法对与所述目标数据集对应的缓存进行更新,其中,所述更新方法用于表征按第一时间对所述更新请求的时长和/或所述目标数据集的存储空间进行判断,所述缓存包括:基于本地缓存框架构建的第一缓存和基于分布式缓存框架构建的第二缓存。
12.根据权利要求7所述装置,其中,所述统计单元还包括:
转换模块,被配置成基于预设的第二时间,利用数据处理方法对每个所述数据中各个所述访问频率进行转换,得到转换后的所有所述数据对应的目标数据集,其中,所述数据处理方法用于表征对每个所述数据中各个所述访问频率值进行减半。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110013570.4A CN113779453A (zh) | 2021-01-06 | 2021-01-06 | 缓存更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110013570.4A CN113779453A (zh) | 2021-01-06 | 2021-01-06 | 缓存更新方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113779453A true CN113779453A (zh) | 2021-12-10 |
Family
ID=78835409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110013570.4A Pending CN113779453A (zh) | 2021-01-06 | 2021-01-06 | 缓存更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779453A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304404A (zh) * | 2017-01-12 | 2018-07-20 | 北京大学 | 一种基于改进的Sketch结构的数据频率估计方法 |
CN110674432A (zh) * | 2019-09-09 | 2020-01-10 | 中国平安财产保险股份有限公司 | 二级缓存方法、装置及计算机可读存储介质 |
US20200133543A1 (en) * | 2018-10-25 | 2020-04-30 | EMC IP Holding Company LLC | Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications |
CN111159063A (zh) * | 2019-12-25 | 2020-05-15 | 大连理工大学 | 一种面向多层Sketch网络测量的缓存分配方法 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
-
2021
- 2021-01-06 CN CN202110013570.4A patent/CN113779453A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304404A (zh) * | 2017-01-12 | 2018-07-20 | 北京大学 | 一种基于改进的Sketch结构的数据频率估计方法 |
US20200133543A1 (en) * | 2018-10-25 | 2020-04-30 | EMC IP Holding Company LLC | Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
CN110674432A (zh) * | 2019-09-09 | 2020-01-10 | 中国平安财产保险股份有限公司 | 二级缓存方法、装置及计算机可读存储介质 |
CN111159063A (zh) * | 2019-12-25 | 2020-05-15 | 大连理工大学 | 一种面向多层Sketch网络测量的缓存分配方法 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
李平: "POF-ICN架构中的边缘缓存研究", 中国优秀硕士学位论文全文数据库 信息科技辑, vol. 2019, no. 09, 15 September 2019 (2019-09-15), pages 41 * |
王浩;喻占武;曾武;潘少明;: "基于瓦片寿命和访问热度的海量空间数据缓存置换策略", 武汉大学学报(信息科学版), no. 06, 5 June 2009 (2009-06-05) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6594534B2 (ja) | テキスト情報処理方法およびデバイス | |
EP3916630A1 (en) | Method and apparatus for identifying video | |
CN111582454B (zh) | 生成神经网络模型的方法和装置 | |
US10249070B2 (en) | Dynamic interaction graphs with probabilistic edge decay | |
CN112000394B (zh) | 用于访问小程序的方法、装置、设备以及存储介质 | |
US11367284B2 (en) | Method and apparatus for commenting video | |
CN111582477B (zh) | 神经网络模型的训练方法和装置 | |
CN110569969A (zh) | 网络模型结构的采样方法、装置以及电子设备 | |
CN111461343A (zh) | 模型参数更新方法及其相关设备 | |
CN112015468B (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
CN111582452A (zh) | 生成神经网络模型的方法和装置 | |
CN113765873A (zh) | 用于检测异常访问流量的方法和装置 | |
CN112446574B (zh) | 产品评估方法、装置、电子设备及存储介质 | |
CN114840565A (zh) | 抽样查询方法、装置、电子设备及计算机可读存储介质 | |
CN110619008A (zh) | 数据库查询方法、装置、电子设备及存储介质 | |
CN111726402A (zh) | 用户行为数据处理方法、装置、电子设备及存储介质 | |
CN113779453A (zh) | 缓存更新方法和装置 | |
CN111597026B (zh) | 用于获取信息的方法及装置 | |
CN112734454B (zh) | 一种用户信息确定方法、装置、电子设备和存储介质 | |
CN112631517B (zh) | 数据存储方法、装置、电子设备和存储介质 | |
CN111340222B (zh) | 神经网络模型搜索方法、装置以及电子设备 | |
CN110580322B (zh) | 独立访客信息处理的方法、装置、电子设备及存储介质 | |
CN111461340B (zh) | 权重矩阵的更新方法、装置及电子设备 | |
CN116841794A (zh) | 一种数据的校验方法、装置以及存储介质 | |
US11301442B2 (en) | Method and system for using array level time buckets to efficiently calculate top contributors using relevant performance metric |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |