System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储,尤其涉及一种对象数据列举方法、装置、电子设备及可读存储介质
技术介绍
1、amazon simple storage service(简称amazon s3)是最早由亚马逊公司推出的云存储标准协议,因其具备远超传统文件系统的存储容量、更灵活的系统扩展性以及更高的数据持久性而被广泛应用于数据湖、云原生应用程序、存档、备份和恢复、富媒体和机器学习等领域。
2、在amazon s3中,目录被视为桶(bucket),数据被视为对象(object),每个对象由唯一的键(key,即对象名)和值(value,即数据)组成并存储于存储桶中。用户可以通过s3协议提供的一系列接口存储与检索任意数量的对象数据。
3、对象存储作为一种专为非结构化数据研发的新型存储与数据管理技术,其存储桶内的数据天然具备海量、增速迅猛、孤立等特点。现有技术中通过相应的接口获取对象数据列表时,其接口本身的对象数据列举限制会大幅降低获取对象数据的效率。因此,如何能够在保证列举对象有序性的同时加快对象的列举速度成为当前亟待解决的问题。
技术实现思路
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、可选的,所述服务端还包括用于限制并发数量的线程许可量;
33、所述响应于客户端发起的对象列举请求,获取对象列举参数,包括:
34、响应于客户端发起的对象列举请求,确定所述线程许可量是否大于预设阈值;
35、如果所述线程许可量大于预设阈值,获取对象列举参数,并将线程许可量的数值减一;
36、如果所述线程许可量小于预设阈值,拒绝所述客户端发起的对象列举请求,并向所述客户端返回错误信息。
37、本申请还提供一种对象数据列举装置,应用于服务端,所述服务端包括二级缓存,所述二级缓存中的第一级缓存,存储了在当前时间之前的预设时长内被查询的至少一条对象数据;所述二级缓存中的第二级缓存,存储了被查询次数超过预设阈值的至少一条对象数据,所述装置包括:
38、请求获取单元,用于响应于客户端发起的对象列举请求,获取对象列举参数;
39、第一级缓存查询单元,用于基于所述对象列举参数,查询第一级缓存,确定所述第一级缓存是否包括待列举的对象数据;
40、第二级缓存查询单元,用于如果所述第一级缓存包括所述待列举的对象数据,获取所述待列举的对象数据;反之,查询所述第二级缓存,确定所述第二级缓存是否包括待列举的对象数据;
41、数据库查询单元,用于如果所述第二级缓存包括所本文档来自技高网...
【技术保护点】
1.一种对象数据列举方法,应用于服务端,所述服务端包括二级缓存,所述二级缓存中的第一级缓存,存储了在当前时间之前的预设时长内被查询的至少一条对象数据;所述二级缓存中的第二级缓存,存储了被查询次数超过预设阈值的至少一条对象数据,所述方法包括:
2.根据权利要求1所述的方法,所述方法还包括:
3.根据权利要求1所述的方法,所述方法还包括:
4.根据权利要求1所述的方法,所述方法还包括:
5.根据权利要求3所述的方法,所述方法还包括:
6.根据权利要求1所述的方法,所述从数据库中查询所述待列举的对象数据,包括:
7.根据权利要求6所述的方法,所述从数据库中获取预设阈值数量的对象数据并存储至所述第一级缓存,包括:
8.根据权利要求1所述的方法,所述服务端还包括至少一个缓存执行实体,所述缓存执行实体包括所述二级缓存;所述服务端还包括缓存实体统计集合;所述缓存实体统计集合存储了对象数据标识以及所述缓存执行实体之间的对应关系;所述对象列举参数中至少包括对象数据标识;
9.根据权利要求1所述的方法,所
10.一种对象数据列举装置,应用于服务端,所述服务端包括二级缓存,所述二级缓存中的第一级缓存,存储了在当前时间之前的预设时长内被查询的至少一条对象数据;所述二级缓存中的第二级缓存,存储了被查询次数超过预设阈值的至少一条对象数据,所述装置包括:
11.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
12.一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-9任一项所述的方法。
...【技术特征摘要】
1.一种对象数据列举方法,应用于服务端,所述服务端包括二级缓存,所述二级缓存中的第一级缓存,存储了在当前时间之前的预设时长内被查询的至少一条对象数据;所述二级缓存中的第二级缓存,存储了被查询次数超过预设阈值的至少一条对象数据,所述方法包括:
2.根据权利要求1所述的方法,所述方法还包括:
3.根据权利要求1所述的方法,所述方法还包括:
4.根据权利要求1所述的方法,所述方法还包括:
5.根据权利要求3所述的方法,所述方法还包括:
6.根据权利要求1所述的方法,所述从数据库中查询所述待列举的对象数据,包括:
7.根据权利要求6所述的方法,所述从数据库中获取预设阈值数量的对象数据并存储至所述第一级缓存,包括:
8.根据权利要求1所述的方法,所述服务端还包括至少一个缓存执行实体,所述缓存执行实体包括所述二...
【专利技术属性】
技术研发人员:王陈幸,高志远,沈泽宇,
申请(专利权)人:杭州宏杉科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。