[发明专利]通用缓存的方法及装置有效
申请号: | 201510959059.8 | 申请日: | 2015-12-18 |
公开(公告)号: | CN105630889B | 公开(公告)日: | 2019-12-10 |
发明(设计)人: | 王院生 | 申请(专利权)人: | 北京奇虎科技有限公司;奇安信科技集团股份有限公司 |
主分类号: | G06F16/957 | 分类号: | G06F16/957 |
代理公司: | 11348 北京鼎佳达知识产权代理事务所(普通合伙) | 代理人: | 王伟锋;刘铁生 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通用 缓存 方法 装置 | ||
1.一种通用缓存的方法,其特征在于,所述方法包括:
在内存中查找客户端请求的目标数据;
若未查找到所述目标数据,则调用钩子Hook函数获取所述目标数据,所述钩子函数用于钩取外层的目标函数,不同的目标函数用于从不同的数据库中获取目标数据;
其中,所述调用钩子函数获取所述目标数据,具体包括:根据所述钩子函数外层的调用指示,钩取对应目标数据库的目标函数;执行所述目标函数,从所述目标数据库中获取所述目标数据;将所述目标数据作为所述钩子函数的返回参数返回;
设置所述目标数据的缓存有效时长,所述缓存有效时长包括缓存成功时对应的第一缓存有效时长和缓存失败时对应的第二缓存有效时长,所述第二缓存有效时长是指在所述目标数据缓存失败后清除所述目标数据所用的时间;
将所述目标数据进行缓存;并且,
将所述目标数据返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述钩子函数的返回参数中包含执行状态和执行结果。
3.根据权利要求1所述的方法,其特征在于,在所述调用钩子函数获取所述目标数据之后,所述方法进一步包括:
为所述目标数据设置缓存的唯一标识,以使从所述内存中根据所述唯一标识获取对应的目标数据。
4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:
当在所述第一缓存有效时长内,需要从所述内存中删除所述目标数据时,通过所述唯一标识查找并删除所述目标数据。
5.一种通用缓存的装置,其特征在于,所述装置包括:
查找单元,用于在内存中查找客户端请求的目标数据;
调用单元,用于若未查找到所述目标数据,则调用钩子Hook函数获取所述目标数据,所述钩子函数用于钩取外层的目标函数,不同的目标函数用于从不同的数据库中获取目标数据;
所述调用单元包括:钩取模块、执行模块以及返回模块;
所述钩取模块,用于根据所述钩子函数外层的调用指示,钩取对应目标数据库的目标函数;
所述执行模块,用于执行所述目标函数,从所述目标数据库中获取所述目标数据;
所述返回模块,用于将所述目标数据作为所述钩子函数的返回参数返回;
第二设置单元,用于在所述调用钩子函数获取所述目标数据之后,设置所述目标数据的缓存有效时长,所述缓存有效时长包括缓存成功时对应的第一缓存有效时长和缓存失败时对应的第二缓存有效时长,所述第二缓存有效时长是指在所述目标数据缓存失败后清除所述目标数据所用的时间;
缓存单元,用于将所述目标数据进行缓存;
返回单元,用于将所述目标数据返回给所述客户端。
6.根据权利要求5所述的装置,其特征在于,所述调用单元调用的所述钩子函数的返回参数中包含执行状态和执行结果。
7.根据权利要求5所述的装置,其特征在于,所述装置进一步包括:
第一设置单元,用于在所述调用钩子函数获取所述目标数据之后,为所述目标数据设置缓存的唯一标识,以使从所述内存中根据所述唯一标识获取对应的目标数据。
8.根据权利要求7所述的装置,其特征在于,所述装置进一步包括:
删除单元,用于当在所述第一缓存有效时长内,需要从所述内存中删除所述目标数据时,通过所述唯一标识查找并删除所述目标数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇安信科技集团股份有限公司,未经北京奇虎科技有限公司;奇安信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510959059.8/1.html,转载请声明来源钻瓜专利网。