一种用于Key-Value缓存系统数据缓存预热的方法及设备技术方案

技术编号:27810272 阅读:43 留言:0更新日期:2021-03-30 09:41
本申请提供了一种用于Key

【技术实现步骤摘要】
一种用于Key

Value缓存系统数据缓存预热的方法及设备


[0001]本申请涉及计算机数据处理
,尤其涉及一种用于Key

Value缓存系统数据缓存预热的技术。

技术介绍

[0002]当前在构建大型互联网应用或者提供云计算服务的时候,往往采用Key

Value缓存系统作为存储方案的选择,以应对这些大型互联网应用或者云计算服务对海量数据存取的性能、分布式、扩展性支持等方面的要求。
[0003]缓存预热就是缓存系统新上线或者数据丢失后,提前将相关的缓存数据加载到缓存系统。为了提升某些访问频率高的数据的访问速度,经常将此类数据做缓存预热,以避免先查询数据库,然后再将数据缓存。
[0004]现有Redis缓存系统的数据缓存预热的实现方法是先将通过代理服务器Nginx的http请求,将访问流量上报给日志系统,然后对上报流量作统计,接着基于编写的脚本监控统计数据中的热点数据,再将热点数据加载到缓存,以实现数据缓存预热。现有的数据缓存预热实现方法实现较复杂、效率较低,且具有较大的局限性,只适合统计通过http方式访问的数据。

技术实现思路

[0005]本申请的目的是提供一种用于Key

Value缓存系统数据缓存预热的方法及设备,用以解决现有数据缓存预热的实现方式复杂、效率不高的技术问题。
[0006]根据本申请的一个方面,提供了一种用于Key

Value缓存系统数据缓存预热的方法,其中,所述方法包括:
[0007]接收待缓存的若干个或者若干组数据,并缓存每个或者每组数据,其中,一个或者一组数据唯一对应一个第一数据key,其中,所述第一数据Key用以标识缓存的所述一个或者一组数据,其中,所述第一数据Key的Value为缓存的所述一个或者一组数据;
[0008]基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key,其中,所述第二数据Key用以标识所述一个或者一组数据的被读取次数,所述第二数据Key的Value初值设置为0;
[0009]在预设时间间隔内,当一个或者一组数据每次被读取时,基于所述一个或者一组数据的第一数据Key,将与所述第一数据Key对应的第二数据Key的Value累加1;
[0010]在所述预设时间间隔结束时,获取每个第二数据Key的Value,并进行排序,以确定排序前N位的N个第二数据Key,其中,N为预设的正整数;
[0011]基于所述N个第二数据Key,确定所述N个第二数据Key对应的N个第一数据Key,并将所述N个第一数据Key对应的N个或者N组数据保留在缓存中,以实现所述数据缓存预热。
[0012]可选地,所述方法还包括:
[0013]将与保留在缓存中的每个或者每组数据对应的第二数据Key的Value清零。
[0014]可选地,所述方法还包括:
[0015]将排序不在前N位的数据从缓存中删除。
[0016]可选地,其中,所述基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key包括:
[0017]基于第一预设规则对所述第一数据Key进行运算,得到所述第二数据Key,其中,根据第二预设规则对所述第二数据Key进行运算,还得到所述第一数据Key,其中,所述基于第一预设规则与所述第二预设规则所确定的运算互为逆运算。。
[0018]根据本申请的另一方面,还提供了一种用于Key

Value缓存系统数据缓存预热的设备,其中,所述设备包括:
[0019]第一装置,用于接收待缓存的若干个或者若干组数据,并缓存每个或者每组数据,其中,一个或者一组数据唯一对应一个第一数据Key,其中,所述第一数据Key用以标识缓存的所述一个或者一组数据,其中,所述第一数据Key的Value为缓存的所述一个或者一组数据;
[0020]第二装置,用于基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key,其中,所述第二数据Key用以标识所述一个或者一组数据的被读取次数,所述第二数据Key的Value初值设置为0;
[0021]第三装置,用于在预设时间间隔内,当一个或者一组数据每次被读取时,基于所述一个或者一组数据的第一数据Key,将与所述第一数据Key对应的第二数据Key的Value累加1;
[0022]第四装置,用于在所述预设时间间隔结束时,获取每个第二数据Key的Value,并进行排序,以确定排序前N位的N个第二数据Key,其中,N为预设的正整数;
[0023]第五装置,用于基于所述N个第二数据Key,确定所述N个第二数据Key对应的N个第一数据Key,并将所述N个第一数据Key对应的N个或者N组数据保留在缓存中,以实现所述数据缓存预热。
[0024]可选地,所述设备还包括:
[0025]第六装置,用于将与保留在缓存中的每个或者每组数据对应的第二数据Key的Value清零。
[0026]可选地,所述设备还包括:
[0027]第七装置,用于将排序不在前N位的数据从缓存中删除。
[0028]与现有技术相比,本申请提供了一种用于Key

Value缓存系统数据缓存预热的方法及设备,首先接收待缓存的若干个或者若干组数据,并缓存每个或者每组数据,其中,一个或者一组数据唯一对应一个第一数据key,其中,所述第一数据Key用以标识缓存的所述一个或者一组数据,其中,所述第一数据Key的Value为缓存的所述一个或者一组数据,接着基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key,其中,所述第二数据Key用以标识所述一个或者一组数据的被读取次数,所述第二数据Key的Value初值设置为0,然后在预
设时间间隔内,当一个或者一组数据每次被读取时,基于所述一个或者一组数据的第一数据Key,将与所述第一数据Key对应的第二数据Key的Value累加1,再接着在所述预设时间间隔结束时,获取每个第二数据Key的Value,并进行排序,以确定排序前N位的N个第二数据Key,其中,N为预设的正整数,最后基于所述N个第二数据Key,确定所述N个第二数据Key对应的N个第一数据Key,并将所述N个第一数据Key对应的N个或者N组数据保留在缓存中,以实现所述数据缓存预热。通过该方法可直接将缓存中访问频率较高的数据作为热点数据预热,方法简单、效率高,还可以通过调整预设时间间隔让热点数据更合理有效保留在缓存中,具有实用价值。
附图说明
[0029]通过阅读参照以下附图所作的对非限制性实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于Key

Value缓存系统数据缓存预热的方法,其特征在于,所述方法包括:接收待缓存的若干个或者若干组数据,并缓存每个或者每组数据,其中,一个或者一组数据唯一对应一个第一数据key,其中,所述第一数据Key用以标识缓存的所述一个或者一组数据,其中,所述第一数据Key的Value为缓存的所述一个或者一组数据;基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key,其中,所述第二数据Key用以标识所述一个或者一组数据的被读取次数,所述第二数据Key的Value初值设置为0;在预设时间间隔内,当一个或者一组数据每次被读取时,基于所述一个或者一组数据的第一数据Key,将与所述第一数据Key对应的第二数据Key的Value累加1;在所述预设时间间隔结束时,获取每个第二数据Key的Value,并进行排序,以确定排序前N位的N个第二数据Key,其中,N为预设的正整数;基于所述N个第二数据Key,确定所述N个第二数据Key对应的N个第一数据Key,并将所述N个第一数据Key对应的N个或者N组数据保留在缓存中,以实现所述数据缓存预热。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将与保留在缓存中的每个或者每组数据对应的第二数据Key的Value清零。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:将排序不在前N位的数据从缓存中删除。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述基于一个或者一组数据的第一数据Key,唯一确定所述一个或者一组数据的第二数据Key,其中,基于所述第二数据Key,还唯一确定所述第一数据Key包括:基于第一预设规则对所述第一数据Key进行运算,得到所述第二数据Key,其中,根据第二预设规则对所述第二数据Key进行运算,还得到所述第一数据Key,其中,所述基于第一预设规则与所述第二预设规则所确定的运算互为逆运算。5.一种用于Key

【专利技术属性】
技术研发人员:田卡
申请(专利权)人:上海悦易网络信息技术有限公司
类型:发明
国别省市:

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

1