The invention provides a data updating method, device and computer readable medium in cache. The methods included: according to the data update strategy in the data update policy set to determine whether the data stored in the cache module is needed to be updated; if necessary, the task of generating the updated data is generated; the threads in the starting thread pool communicate with the data corresponding to the data, execute the task of updating the data, and implement the basis The data in the sub service updates the corresponding data in the storage module of the cache. The technical proposal of the invention can well be compatible with the data timeliness and system performance in the cache.
【技术实现步骤摘要】
缓存中的数据更新方法、装置及计算机可读介质
本专利技术涉及计算机应用
,尤其涉及一种缓存中的数据更新方法、装置及计算机可读介质。
技术介绍
缓存是软件系统中不可缺少的组件。传统的软件系统中,数据缓存层对数据库做缓存,以减少对数据库的访问,提升系统性能。例如,图1为现有技术中常用的一种互联网微服务系统架构图。如图1所示,一个数据请求服务不仅仅用于查询数据库,更多的是远程服务调用,如图1中,该服务可以分别调用远程的子服务1、子服务2和子服务3,获取对应的子服务的数据。远程服务调用在性能上远远低于本地数据库的调用,在稳定性上更是不能望其项背。因此,数据缓存对微服务架构提升性能尤其重要。图2为现有技术中常用的另一种互联网微服务系统架构图。图2所述的系统架构,在图1的基础上增加了数据的缓存层。若服务首次向子服务1、子服务2和子服务3中的任意一个或者多个请求数据时,可以将获取的数据存储在缓存中,同时设置缓存中该数据的有效时间长度,以便于在缓存中该数据的有效期内、上层服务再次请求该数据时,可以直接根据缓存层中存储的该数据作出响应。该数据缓存层的优势在于:对服务的上 ...
【技术保护点】
一种缓存中的数据更新方法,其特征在于,所述方法包括:根据数据更新策略集合中的数据更新策略,确定是否需要更新缓存的存储模块中存储的数据;若需要,生成更新所述数据的任务;启动线程池中的线程与所述数据对应的子服务通信,执行更新所述数据的任务,实现根据所述子服务中的数据更新所述缓存的所述存储模块中对应的所述数据。
【技术特征摘要】
1.一种缓存中的数据更新方法,其特征在于,所述方法包括:根据数据更新策略集合中的数据更新策略,确定是否需要更新缓存的存储模块中存储的数据;若需要,生成更新所述数据的任务;启动线程池中的线程与所述数据对应的子服务通信,执行更新所述数据的任务,实现根据所述子服务中的数据更新所述缓存的所述存储模块中对应的所述数据。2.根据权利要求1所述的方法,其特征在于,生成更新所述数据的任务之后,所述方法还包括:将更新所述数据的任务存储在队列中;进一步地,启动线程池中的线程与所述数据对应的子服务通信,执行更新所述数据的任务,实现根据所述子服务中的数据更新所述缓存的所述存储模块中对应的所述数据,具体包括:启动所述线程池中的线程,控制所述线程从所述队列中获取所述任务,并与所述数据对应的子服务通信执行所述任务;获取执行所述任务的所述线程返回的更新后的所述数据;将更新后的所述数据存储在所述缓存的所述存储模块中。3.根据权利要求2所述的方法,其特征在于,若所述存储模块中同时符合所述数据更新策略数据有多个时,将更新所述数据的任务存储在队列中,具体包括:获取各所述数据对应的子服务标识;将更新各所述数据的任务依次存储在对应的子服务标识对应的所述队列中;进一步地,启动所述线程池中的线程,控制所述线程从所述队列中获取所述任务,并与所述数据对应的子服务通信执行所述任务,具体包括:启动所述线程池中的多个线程,控制各所述线程从各所述子服务标识对应的所述队列中依次获取所述任务,并与所述数据对应的子服务通信执行获取的所述任务。4.根据权利要求1-3任一所述的方法,其特征在于,若所述数据更新策略包括若发现主服务请求的查询结果中包括敏感数据时,更新所述缓存的所述存储模块中的所述敏感数据;根据数据更新策略集合中的数据更新策略,确定是否需要更新缓存的存储模块中存储的数据,具体包括:接收主服务的数据查询;根据所述数据查询从所述缓存的所述存储模块中获取所述数据查询对应的查询结果;根据所述数据更新策略,判断所述查询结果的数据中是否包括敏感数据;所述敏感数据为出现概率低、但会影响用户操作和主程序逻辑的数据;若包括,确定需要更新所述缓存的所述存储模块中存储的数据,否则确定不需要更新所述缓存的所述存储模块中存储的数据。5.根据权利要求4所述的方法,其特征在于,判断所述查询结果中是否包括敏感数据之前,所述方法还包括:将所述缓存的所述存储模块中存储的所有数据分为三类:所述敏感数据、易变数据和不易变数据;所述易变数据为容易发生变化、但不会影响用户和主流程的数据;所述不易变数据为不容易发生变化的数据。6.根据权利要求1-2任一所述的方法,其特征在于,根据数据更新策略集合中的数据更新策略,确定是否需要更新缓存的存储模块中存储的数据,具体包括:根据所述数据更新策略,检测所述缓存的所述存储模块中存储的各所述数据的存储时长是否达到对应的变化时长阈值;其中各所述数据的所述变化时长阈值相同或者不同;若达到,确定需要更新所述缓存的所述存储模块中存储的数据,否则确定不需要更新所述缓存的所述存储模块中存储的数据。7.根据权利要求1-2任一所述的方法,其特征在于,根据数据更新策略集合中的数据更新策略,确定是否需要更新缓存的存储模块中存储的数据,具体包括:根据所述数据更新策略,检测当前时刻是否为更新所述缓存的所述存储模块中存储的数据的预设时刻,若是,确定需要更新所述缓存的所述存储模块中存储的数据,否则确定不需要更新所述缓存的所述存储模块中存储的数据。8.一种缓存中的数据更新装置,其特征在于,所述装置包括:确定模块...
【专利技术属性】
技术研发人员:杨延超,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。