【技术实现步骤摘要】
基于双缓存区的缓存方法、装置、设备及存储介质
本专利技术涉及云
,尤其涉及一种基于双缓存区的缓存方法、装置、设备及存储介质。
技术介绍
随着科技的发展,人类在上网时会产生各种各样的数据缓存,由于浏览网页过多,会产生较多的数据缓存,那么如何更好的将数据进行缓存,成为了一个急需解决的问题。目前采用java中的哈希映射(HashMap)以及一些开源的本地缓存框架当作本地缓存使用。在现有的技术中,这种本地全局性的缓存不适合在线程隔离共享的场景中使用,局限性较大,且开源的缓存框架过于笨重,缓存的灵活性较低。
技术实现思路
本专利技术的主要目的在于解决数据缓存中局限性较大且灵活性较低的问题。本专利技术第一方面提供了一种基于双缓存区的缓存方法,包括:获取目标终端的缓存请求;判断所述缓存请求是否属于写入缓存请求、读取缓存请求或者删除缓存请求;若所述缓存请求属于所述写入缓存请求,则获取写入映射结构缓存实体,并采用线程共享写入方式或者线程隔离写入方式,将所述写入映射结构缓存实体写入预置缓存区,所述预置缓存区包括预置线程共享缓存区和预置线程隔离缓存区;若所述缓存请求属于所述读取缓存请求,则采用线程共享读取方式或者线程隔离读取方式从预置缓存区中,获取目标预置映射结构缓存实体并读取所述目标预置映射结构缓存实体,所述目标预置映射结构缓存实体为第一目标预置映射结构缓存实体或者第二目标预置映射结构缓存实体,所述第一目标预置映射结构缓存实体为通过线程共享读取方式从预置线程共享缓存区获取的预置映射结构缓存实体, ...
【技术保护点】
1.一种基于双缓存区的缓存方法,其特征在于,所述基于双缓存区的缓存方法包括:/n获取目标终端的缓存请求;/n判断所述缓存请求是否属于写入缓存请求、读取缓存请求或者删除缓存请求;/n若所述缓存请求属于所述写入缓存请求,则获取写入映射结构缓存实体,并采用线程共享写入方式或者线程隔离写入方式,将所述写入映射结构缓存实体写入预置缓存区,所述预置缓存区包括预置线程共享缓存区和预置线程隔离缓存区;/n若所述缓存请求属于所述读取缓存请求,则采用线程共享读取方式或者线程隔离读取方式从预置缓存区中,获取目标预置映射结构缓存实体并读取所述目标预置映射结构缓存实体,所述目标预置映射结构缓存实体为第一目标预置映射结构缓存实体或者第二目标预置映射结构缓存实体,所述第一目标预置映射结构缓存实体为通过线程共享读取方式从预置线程共享缓存区获取的预置映射结构缓存实体,所述第二目标预置映射结构缓存实体为通过线程隔离读取方式从预置线程隔离缓存区获取的预置映射结构缓存实体;/n若所述缓存请求属于所述删除缓存请求,则采用线程共享删除方式或者线程隔离删除方式,在预置缓存区中获取多个预置待删除缓存实体,并删除所述多个预置待删除缓存 ...
【技术特征摘要】
1.一种基于双缓存区的缓存方法,其特征在于,所述基于双缓存区的缓存方法包括:
获取目标终端的缓存请求;
判断所述缓存请求是否属于写入缓存请求、读取缓存请求或者删除缓存请求;
若所述缓存请求属于所述写入缓存请求,则获取写入映射结构缓存实体,并采用线程共享写入方式或者线程隔离写入方式,将所述写入映射结构缓存实体写入预置缓存区,所述预置缓存区包括预置线程共享缓存区和预置线程隔离缓存区;
若所述缓存请求属于所述读取缓存请求,则采用线程共享读取方式或者线程隔离读取方式从预置缓存区中,获取目标预置映射结构缓存实体并读取所述目标预置映射结构缓存实体,所述目标预置映射结构缓存实体为第一目标预置映射结构缓存实体或者第二目标预置映射结构缓存实体,所述第一目标预置映射结构缓存实体为通过线程共享读取方式从预置线程共享缓存区获取的预置映射结构缓存实体,所述第二目标预置映射结构缓存实体为通过线程隔离读取方式从预置线程隔离缓存区获取的预置映射结构缓存实体;
若所述缓存请求属于所述删除缓存请求,则采用线程共享删除方式或者线程隔离删除方式,在预置缓存区中获取多个预置待删除缓存实体,并删除所述多个预置待删除缓存实体,所述多个预置待删除缓存实体为多个第一预置待删除缓存实体或者多个第二预置待删除缓存实体,所述多个第一预置待删除缓存实体为缓存在预置线程共享缓存区中的预置缓存实体,所述多个第二预置待删除缓存实体为缓存在预置线程隔离缓存区中的预置缓存实体。
2.根据权利要求1所述的基于双缓存区的缓存方法,其特征在于,所述若所述缓存请求属于所述写入缓存请求,则获取写入映射结构缓存实体,并采用线程共享写入方式或者线程隔离写入方式,将所述写入映射结构缓存实体写入预置缓存区,所述预置缓存区包括预置线程共享缓存区和预置线程隔离缓存区包括:
若所述缓存请求属于所述写入缓存请求,则判断是否存在预置缓存区,若不存在预置缓存区,则先建立预置线程隔离缓存区,再建立预置线程共享缓存区,得到预置缓存区;
根据所述写入缓存请求获取初始写入映射结构缓存实体,并根据所述初始写入映射结构缓存实体确定写入逻辑类型;
根据所述写入逻辑类型,判断所述写入缓存请求的写入方式是否为线程共享写入方式或者为线程隔离写入方式;
若判定所述写入缓存请求的写入方式为线程共享写入方式,则将所述预置线程共享缓存区的状态调整为临时读写状态,调整所述初始写入映射结构缓存实体,得到写入映射结构缓存实体,并将所述写入映射结构缓存实体写入预置线程共享缓存区;
若判定所述写入缓存请求的写入方式为线程隔离写入方式,则调整所述初始写入映射结构缓存实体,得到写入映射结构缓存实体,并将所述写入映射结构缓存实体写入预置线程隔离缓存区。
3.根据权利要求2所述的基于双缓存区的缓存方法,其特征在于,所述根据所述写入缓存请求获取初始写入映射结构缓存实体,并根据所述初始写入映射结构缓存实体确定写入逻辑类型包括:
根据所述写入缓存请求确定缓存句柄,并根据所述缓存句柄匹配对应的第一映射结构缓存实体;
在所述第一映射结构缓存实体中添加键值,生成第二映射结构缓存实体,所述键值用于保存所述第一映射结构缓存实体的内容值;
在所述第二映射结构缓存实体中添加有效时长,生成第三映射结构缓存实体;
在所述第三映射结构缓存实体中添加更新时刻,生成初始写入映射结构缓存实体,并根据所述初始写入映射结构缓存实体确定写入逻辑类型,所述有效时长与所述更新时刻用于判断所述初始写入映射结构是否超时失效。
4.根据权利要求2所述的基于双缓存区的缓存方法,其特征在于,所述若判定所述写入缓存请求的写入方式为线程隔离写入方式,则调整所述初始写入映射结构缓存实体,得到写入映射结构缓存实体,并将所述写入映射结构缓存实体写入预置线程隔离缓存区包括:
若判定所述写入缓存请求的写入方式为线程隔离写入方式,则将所述初始写入映射结构缓存实体与所述预置线程隔离缓存区中的多个预置写入线程进行匹配,得到目标写入线程;
在所述预置线程隔离缓存区中判断所述目标写入线程是否存在对应的写入子缓存区;
若在所述预置线程隔离缓存区中,不存在所述目标写入线程对应的写入子缓存区,则建立所述目标写入线程对应的写入子缓存区,得到目标写入子缓存区;
将所述初始写入映射结构缓存实体的更新时刻调整为当前时刻,得到写入映射结构缓存实体,并将所述写入映射结构缓存实体存储到所述目标写入子缓存区中,所述目标写入子缓存区设置在所述预置线程隔离缓存区中。
5.根据权利要求1所述的基于双缓存区的缓存方法,其特征在于,所述若所述缓存请求属于所述读取缓存请求,则采用线程共享读取方式或者线程隔离读取方式从预置缓存区中,获取目标预置映射结构缓存实体并读取所述目标预置映射结构缓存实体,所述目标预置映射结构缓存实体为第一目标预置映射结构缓存实体或者第二目标预置映射结构缓存实体,所述第一目标预置映射结构缓存实体为通过线程共享读取方式从预置线程共享缓存区获取的预置映射结构缓存实体,所述第二目标预置映射结构缓存实体为通过线...
【专利技术属性】
技术研发人员:艾可德,
申请(专利权)人:平安国际智慧城市科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。