更新缓存数据的方法、管理器和缓存服务器与流程

文档序号:26854230发布日期:2021-10-09 02:59阅读:138来源:国知局
更新缓存数据的方法、管理器和缓存服务器与流程

1.本公开涉及计算机领域,特别涉及一种更新缓存数据的方法、管理器和缓存服务器。


背景技术:

2.缓存指的是将需要频繁访问的数据存储在离用户较近、访问速度更快的系统中,以提高数据访问速度的一种技术。缓存服务器是一种存储频繁访问数据的服务器。
3.目前缓存服务器将缓存数据及其过期时间一起存储在同一个存储服务实例内,并采用定期枚举所有缓存条目的方法对各个缓存数据进行过期时间管理。


技术实现要素:

4.经研究发现,缓存服务器所采用的一起存储缓存数据及其过期时间和定期枚举所有缓存条目的管理方式,使得各缓存数据的过期时间管理起来不方便,除非枚举所有缓存条目,否则难以全面获知各个缓存数据的过期情况,而定期枚举所有缓存条目的管理方式,一方面会产生一些无效操作,例如,一些很久才会过期的数据也会被枚举到,另一方面使得业务并发高峰的风险增大。
5.本公开实施例将各个缓存数据相应的键和过期时间集中存储到延迟队列,方便集中管理各个缓存数据的过期时间,基于延迟队列无需枚举所有缓存条目就可以方便地获取到可以发起更新操作的目标信息,减少无效操作,触发针对目标信息的缓存更新行为,降低业务并发高峰的风险,在缓存更新之后,将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便进行下一次缓存更新。
6.本公开一些实施例提出一种更新缓存数据的方法,包括:
7.将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列;
8.当更新操作时间到达时,判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息;
9.如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作;
10.将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
11.在一些实施例中,根据设置的更新时间间隔是否到达,确定所述更新操作时间是否到达。
12.在一些实施例中,根据延迟队列中是否有至少一个键相应的过期时间是否满足过期条件,确定所述更新操作时间是否到达。
13.在一些实施例中,所述判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息,包括:判断延迟队列中是否存在过期时间满足过期条件的至少一个键,如果存
在,将过期时间满足过期条件的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。
14.在一些实施例中,所述判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息,还包括:判断过期时间满足过期条件的至少一个键是否满足预设的限流策略,将过期时间满足过期条件且满足限流策略的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。
15.在一些实施例中,判断过期时间满足过期条件的键是否属于当前处理的时间片,如果属于当前处理的时间片,判定过期时间满足过期条件的键满足限流策略。
16.在一些实施例中,将过期时间满足过期条件的至少一个键按照过期时间升序排序,按照排序结果由小到大的顺序,依次判断过期时间满足过期条件的键的排名是否不大于计数器的预设计数值,如果不大于计数器的预设计数值,判定过期时间满足过期条件的键满足限流策略。
17.在一些实施例中,将过期时间满足过期条件的至少一个键按照过期时间升序排序,并按照排序结果由小到大的顺序依次放入漏桶,放入漏桶中的键按照键放入的先后顺序以预设速度流出,流出漏桶的键满足限流策略,溢出漏桶的键不满足限流策略。
18.在一些实施例中,以预设速度向令牌桶放入令牌,将过期时间满足过期条件的至少一个键按照过期时间升序排序并依次从向令牌桶获取令牌,能够获取到令牌的键满足限流策略,未能获取到令牌的键不满足限流策略。
19.在一些实施例中,当更新操作时间到达时,判断所述更新操作时间是否处于非用户业务高峰时间段,如果是,再执行判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息的操作和触发针对所述至少一条目标信息的缓存更新行为的操作。
20.在一些实施例中,所述按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作,包括:根据键相应的缓存数据的访问热度信息,如果缓存数据是访问热点数据,延长该缓存数据相应的过期时间,如果缓存数据不是访问热点数据,缩短或不更新该缓存数据相应的过期时间,当过期时间表示相应的缓存数据过期时,淘汰该缓存数据。
21.在一些实施例中,延迟队列包括一个或多个,不同的延迟队列具有不同的更新时间间隔,其中,将缓存服务器中的缓存数据相应的键和过期时间按照缓存数据更新的快慢程度存储到相应更新时间间隔的延迟队列。
22.本公开一些实施例提出一种更新缓存数据的管理器,其特征在于,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为运行存储在所述存储器中的指令,执行更新缓存数据的方法。
23.本公开一些实施例提出一种更新缓存数据的管理器,包括:
24.信息存储单元,被配置为将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列;
25.信息获取单元,被配置为当更新操作时间到达时,判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息;以及
26.更新触发单元,被配置为如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少
一条目标信息执行缓存数据及其过期数据的更新操作;
27.其中,所述信息存储单元,还被配置为将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
28.本公开一些实施例提出一种缓存服务器,包括:用于存储缓存数据及其过期时间的第一存储单元;用于存储延迟队列的第二存储单元;以及前述的管理器。
29.本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现更新缓存数据的方法的步骤。
附图说明
30.下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍。根据下面参照附图的详细描述,可以更加清楚地理解本公开。
31.显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1示出本公开一些实施例的缓存服务器的示意图。
33.图2示出本公开一些实施例的更新缓存数据的方法的流程示意图。
34.图3示出本公开另一些实施例的更新缓存数据的方法的流程示意图。
35.图4示出本公开一些实施例的更新缓存数据的管理器的示意图。
36.图5示出本公开一些实施例的更新缓存数据的管理器的示意图。
具体实施方式
37.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。
38.除非特别说明,否则,本公开中的“第一”“第二”等描述用来区分不同的对象,并不用来表示大小或时序等含义。
39.图1示出本公开一些实施例的缓存服务器的示意图。
40.如图1所示,该实施例的缓存服务器100包括:用于存储缓存数据及其过期时间的第一存储单元110;用于存储延迟队列的第二存储单元120,延迟队列对第一存储单元110中的缓存数据相应的键(key)和过期时间进行存储;以及,更新缓存数据的管理器130,被配置为执行更新缓存数据的方法,后续具体描述更新缓存数据的方法,从而实现根据第二存储单元120中的延迟队列对第一存储单元110中的缓存数据的过期时间进行集中管理。
41.图2示出本公开一些实施例的更新缓存数据的方法的流程示意图。该方法例如可以由更新缓存数据的管理器130执行。
42.如图2所示,该实施例的更新缓存数据的方法200包括:步骤210

240。
43.在步骤210,将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列。
44.由于将各个缓存数据相应的键和过期时间集中存储到延迟队列,因此,向延迟队列查询各个键及其过期时间,可以统一获得所有键相应的缓存数据的过期时间。
45.延迟队列包括一个或多个。当有多个延迟队列时,不同的延迟队列具有不同的更新时间间隔,将缓存服务器中的缓存数据相应的键和过期时间按照缓存数据更新的快慢程度存储到相应更新时间间隔的延迟队列。例如,将缓存服务器中更新较快的缓存数据存储
到更新时间间隔较小的延迟队列,将缓存服务器中更新较慢的缓存数据存储到更新时间间隔较大的延迟队列。
46.在步骤220,当更新操作时间到达时,判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息。
47.其中,可预先设置延迟队列的更新时间间隔,根据设置的更新时间间隔是否到达,确定所述更新操作时间是否到达,若更新时间间隔到达,确定更新操作时间到达。或者,根据延迟队列中是否有至少一个键相应的过期时间是否满足过期条件,确定所述更新操作时间是否到达。例如,预设数量的键相应的过期时间满足过期条件,确定更新操作时间到达,其中,预设数量可以是一个或多个,过期条件例如是表示过期或即将过期的一个时间阈值。
48.在一些实施例中,所述判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息,包括:判断延迟队列中是否存在过期时间满足过期条件的至少一个键,如果存在,将过期时间满足过期条件的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。其中,延时队列具有队列的特性,附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费,具体来说,延时队列会根据过期时间对各个键排序,并在更新操作时间到达时输出过期时间满足过期条件的至少一个键,作为更新操作的目标。
49.在一些实施例中,当更新操作时间到达时,可以先判断所述更新操作时间是否处于非用户业务高峰时间段,如果是,再执行判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息的操作和后续的触发针对所述至少一条目标信息的缓存更新行为的操作,从而使缓存更新尽量避开业务高峰,避免和用户业务竞争资源。
50.在步骤230,如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作。
51.在一些实施例中,按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作包括:根据键相应的缓存数据的访问热度信息,如果缓存数据是访问热点数据,可延长该缓存数据相应的过期时间,如果缓存数据不是访问热点数据,缩短或不更新该缓存数据相应的过期时间,当过期时间表示相应的缓存数据过期时,淘汰该缓存数据,即,不再缓存该数据。
52.在步骤240,将更新后的缓存数据相应的键和过期时间存储到延迟队列,形成闭环操作,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
53.上述实施例,将各个缓存数据相应的键和过期时间集中存储到延迟队列,方便集中管理各个缓存数据的过期时间,基于延迟队列无需枚举所有缓存条目就可以方便地获取到可以发起更新操作的目标信息,减少无效操作,触发针对目标信息的缓存更新行为,降低业务并发高峰的风险,在缓存更新之后,将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便进行下一次缓存更新。
54.图3示出本公开另一些实施例的更新缓存数据的方法的流程示意图。该方法例如可以由更新缓存数据的管理器130执行。
55.如图3所示,该实施例的更新缓存数据的方法300包括:步骤310

340。
56.在步骤310,将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列。
57.由于将各个缓存数据相应的键和过期时间集中存储到延迟队列,因此,向延迟队列查询各个键及其过期时间,可以统一获得所有键相应的缓存数据的过期时间。
58.延迟队列包括一个或多个。当有多个延迟队列时,不同的延迟队列具有不同的更新时间间隔,将缓存服务器中的缓存数据相应的键和过期时间按照缓存数据更新的快慢程度存储到相应更新时间间隔的延迟队列。例如,将缓存服务器中更新较快的缓存数据存储到更新时间间隔较小的延迟队列,将缓存服务器中更新较慢的缓存数据存储到更新时间间隔较大的延迟队列。
59.在步骤320,当更新操作时间到达时,判断延迟队列中是否存在过期时间满足过期条件的至少一个键,并判断过期时间满足过期条件的至少一个键是否满足预设的限流策略,将过期时间满足过期条件且满足限流策略的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。
60.其中,可预先设置延迟队列的更新时间间隔,根据设置的更新时间间隔是否到达,确定所述更新操作时间是否到达,若更新时间间隔到达,确定更新操作时间到达。或者,根据延迟队列中是否有至少一个键相应的过期时间是否满足过期条件,确定所述更新操作时间是否到达。例如,预设数量的键相应的过期时间满足过期条件,确定更新操作时间到达,其中,预设数量可以是一个或多个,过期条件例如是表示过期或即将过期的一个时间阈值。
61.下面列举一些示例性的限流策略。
62.限流策略1,判断过期时间满足过期条件的键是否属于当前处理的时间片,如果属于当前处理的时间片,判定过期时间满足过期条件的键满足限流策略。从而,分多个时间片完成缓存的刷新。
63.限流策略2,将过期时间满足过期条件的至少一个键按照过期时间升序排序,按照排序结果由小到大的顺序,依次判断过期时间满足过期条件的键的排名是否不大于计数器的预设计数值,如果不大于计数器的预设计数值,判定过期时间满足过期条件的键满足限流策略,且计数器的计数值增加1,如果大于计数器的预设计数值,判定过期时间满足过期条件的键不满足限流策略,重置计数器为初始计数值。从而,每次缓存更新量不会超过计数器的预设计数值。
64.限流策略3,将过期时间满足过期条件的至少一个键按照过期时间升序排序,并按照排序结果由小到大的顺序依次放入漏桶,放入漏桶中的键按照键放入的先后顺序以预设速度流出,流出漏桶的键满足限流策略,溢出漏桶的键不满足限流策略。从而,确保不会超出缓存更新处理能力。
65.限流策略4,以预设速度向令牌桶放入令牌,将过期时间满足过期条件的至少一个键按照过期时间升序排序并依次从向令牌桶获取令牌,能够获取到令牌的键满足限流策略,未能获取到令牌的键不满足限流策略。从而,确保不会超出缓存更新处理能力。
66.在一些实施例中,当更新操作时间到达时,还可以先判断所述更新操作时间是否处于非用户业务高峰时间段,如果是,再执行判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息的操作和后续的触发针对所述至少一条目标信息的缓存更新行为的操作,从而使缓存更新尽量避开业务高峰,避免和用户业务竞争资源。
67.在步骤330,如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少一条目标信息
执行缓存数据及其过期数据的更新操作。
68.在一些实施例中,按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作包括:根据键相应的缓存数据的访问热度信息,如果缓存数据是访问热点数据,可延长该缓存数据相应的过期时间,如果缓存数据不是访问热点数据,缩短或不更新该缓存数据相应的过期时间,当过期时间表示相应的缓存数据过期时,淘汰该缓存数据,即,不再缓存该数据。
69.在步骤340,将更新后的缓存数据相应的键和过期时间存储到延迟队列,形成闭环操作,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
70.上述实施例,将各个缓存数据相应的键和过期时间集中存储到延迟队列,方便集中管理各个缓存数据的过期时间,基于延迟队列无需枚举所有缓存条目就可以方便地获取到可以发起更新操作的目标信息,减少无效操作,可结合限流策略确定更新目标,并触发针对目标信息的缓存更新行为,进一步降低业务并发高峰的风险,在缓存更新之后,将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便进行下一次缓存更新。
71.图4示出本公开一些实施例的更新缓存数据的管理器的示意图。
72.如图4所示,该实施例的更新缓存数据的管理器130包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为运行存储在存储器410中的指令,执行前述任意一些实施例中的更新缓存数据的方法。
73.例如,将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列;当更新操作时间到达时,判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息;如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作;将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
74.其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)以及其他程序等。
75.图5示出本公开另一些实施例的更新缓存数据的管理器的示意图。
76.如图5所示,该实施例的更新缓存数据的管理器130包括:单元510

530。
77.信息存储单元510,被配置为将缓存服务器中的缓存数据相应的键和过期时间存储到延迟队列。
78.信息获取单元520,被配置为当更新操作时间到达时,判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息。
79.更新触发单元530,被配置为如果获取到可以发起更新操作的至少一条目标信息,触发针对所述至少一条目标信息的缓存更新行为,使得按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作。
80.其中,所述信息存储单元510,还被配置为将更新后的缓存数据相应的键和过期时间存储到延迟队列,以便等待下一次更新操作时间到达进行下一次缓存更新行为触发。
81.延迟队列包括一个或多个,不同的延迟队列具有不同的更新时间间隔。在一些实施例中,信息存储单元510,被配置为将缓存服务器中的缓存数据相应的键和过期时间按照缓存数据更新的快慢程度存储到相应更新时间间隔的延迟队列。
82.在一些实施例中,信息获取单元520,还被配置为根据设置的更新时间间隔是否到达,确定所述更新操作时间是否到达;或者,根据延迟队列中是否有至少一个键相应的过期时间是否满足过期条件,确定所述更新操作时间是否到达。
83.在一些实施例中,信息获取单元520,被配置为判断延迟队列中是否存在过期时间满足过期条件的至少一个键,如果存在,将过期时间满足过期条件的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。
84.在一些实施例中,信息获取单元520,被配置为判断延迟队列中是否存在过期时间满足过期条件的至少一个键,并判断过期时间满足过期条件的至少一个键是否满足预设的限流策略,将过期时间满足过期条件且满足限流策略的至少一个键作为获取到的可以发起更新操作的至少一条目标信息。
85.在一些实施例中,信息获取单元520,被配置为判断过期时间满足过期条件的键是否属于当前处理的时间片,如果属于当前处理的时间片,判定过期时间满足过期条件的键满足限流策略。
86.在一些实施例中,信息获取单元520,被配置为将过期时间满足过期条件的至少一个键按照过期时间升序排序,按照排序结果由小到大的顺序,依次判断过期时间满足过期条件的键的排名是否不大于计数器的预设计数值,如果不大于计数器的预设计数值,判定过期时间满足过期条件的键满足限流策略。
87.在一些实施例中,信息获取单元520,被配置为将过期时间满足过期条件的至少一个键按照过期时间升序排序,并按照排序结果由小到大的顺序依次放入漏桶,放入漏桶中的键按照键放入的先后顺序以预设速度流出,流出漏桶的键满足限流策略,溢出漏桶的键不满足限流策略。
88.在一些实施例中,信息获取单元520,被配置为以预设速度向令牌桶放入令牌,将过期时间满足过期条件的至少一个键按照过期时间升序排序并依次从向令牌桶获取令牌,能够获取到令牌的键满足限流策略,未能获取到令牌的键不满足限流策略。
89.在一些实施例中,信息获取单元520,还被配置为当更新操作时间到达时,判断所述更新操作时间是否处于非用户业务高峰时间段,如果是,再执行判断基于延迟队列是否获取到可以发起更新操作的至少一条目标信息的操作和触发针对所述至少一条目标信息的缓存更新行为的操作。
90.其中,所述按照设置的缓存更新策略对所述至少一条目标信息执行缓存数据及其过期数据的更新操作,包括:根据键相应的缓存数据的访问热度信息,如果缓存数据是访问热点数据,延长该缓存数据相应的过期时间,如果缓存数据不是访问热点数据,缩短或不更新该缓存数据相应的过期时间,当过期时间表示相应的缓存数据过期时,淘汰该缓存数据。
91.本公开一些实施例提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现各实施例的更新缓存数据的方法的步骤。
92.本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机程序代码的非瞬时性计算机可读存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
93.本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
95.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
96.以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1