CN110119409A - 分布式应用中缓存设计方法、装置、设备及存储介质 - Google Patents

分布式应用中缓存设计方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110119409A
CN110119409A CN201910434779.0A CN201910434779A CN110119409A CN 110119409 A CN110119409 A CN 110119409A CN 201910434779 A CN201910434779 A CN 201910434779A CN 110119409 A CN110119409 A CN 110119409A
Authority
CN
China
Prior art keywords
cache
version number
data
entity
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910434779.0A
Other languages
English (en)
Inventor
胡立亮
苏鹏
袁游
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Shenshuyun Information Technology Co Ltd
Original Assignee
Wuhan Shenshuyun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Shenshuyun Information Technology Co Ltd filed Critical Wuhan Shenshuyun Information Technology Co Ltd
Priority to CN201910434779.0A priority Critical patent/CN110119409A/zh
Publication of CN110119409A publication Critical patent/CN110119409A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种分布式应用中缓存设计方法及设备。其中,所述方法包括:在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。本发明实施例提供的分布式应用中缓存设计方法及设备,可以使本机缓存和分布式缓存满足数据一致性,并且降低了对于分布式缓存的查询压力。

Description

分布式应用中缓存设计方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种分布式应用中缓存设计方法、装置、设备及存储介质。
背景技术
缓存作为现代高负载、高并发的软件系统中不可缺少的部分,为减少系统开销,提高系统效率提供了相当有效的帮助。按照不同的使用场景,缓存具体可分为操作系统磁盘缓存(减少磁盘机械操作)、数据库缓存(减少文件系统IO)、应用程序缓存(减少对数据库的查询)、Web服务器缓存(减少应用服务器请求)、客户端浏览器缓存(减少对网站的访问)等。
应用程序缓存在分布式环境下主要是通过增加Redis或Memcached这种分布式缓存系统,在应用程序和数据库之间做一个中间层。应用程序访问数据先去Redis中查找,如果存在则立即返回,否则就去数据库中查找,在返回数据的同时缓存到Redis中,待下次应用程序访问同样的数据时就可在Redis中找到,继而减少了对数据库的查询。但是,在高负载、高并发的环境下,上述技术方案可能会遇到缓存穿透、缓存击穿、缓存雪崩和缓存刷新等问题,严重的将直接导致数据库不可用。而多级缓存的各个缓存之间存在数据一致性的问题。因此,找到一种可以使各个缓存之间满足数据一致性,并且降低对于分布式缓存的查询压力的方法,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种分布式应用中缓存设计方法及设备。
第一方面,本发明的实施例提供了一种分布式应用中缓存设计方法,包括:在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,所述本机缓存的类型,包括:列表缓存、实体缓存和/或实体正文缓存;所述列表缓存,用于缓存ModelId列表,并根据所述ModelId列表中的ModelId,组装实体列表;所述实体缓存,用于缓存实体;所述实体正文缓存,用于缓存数据库的内容和/或格式化后的内容;其中,所述ModelId为模型ID。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,所述实体缓存或实体正文缓存,在数据库中进行DML操作,并在仓储中同步存储,数据库改动实体,所述实体的版本号进行增加;将所述分布式缓存的版本号与所述本机缓存的版本号关联,若实体升级,则实体缓存或实体正文缓存根据所述实体升级的信息,构建所述第一版本号,采用所述第二版本号,实现对数据的即时性更新;其中,所述DML操作为数据操作语言操作。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,所述列表缓存将所述第一版本号与所述分布式缓存的版本号关联,若所述列表缓存中的数据发生改变,所述列表缓存丢弃所述第一版本号,采用所述第二版本号作为所述列表缓存的版本号。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,所述列表缓存的版本,包括:全局版本和/或分区版本;若在全局范围内存在针对实体的DML操作,则将所述全局版本的版本号,由所述第一版本号替换为所述第二版本号;若在一分区内存在针对实体的DML操作,则将所述分区版本的版本号,由所述第一版本号替换为所述第二版本号;其中,所述DML操作为数据操作语言操作。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,还包括:若分页获取数据,则所述列表缓存存储前30分页的数据。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的分布式应用中缓存设计方法,还包括:若获取推荐或排名数据,则提取前一千条数据的ModelID,存入所述本机缓存。
第二方面,本发明的实施例提供了一种分布式应用中缓存设计装置,包括:
本机缓存插入模块,用于在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;
本机缓存版本号更换模块,用于若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器;以及
与处理器通信连接的至少一个存储器,其中:
存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的分布式应用中缓存设计方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的分布式应用中缓存设计方法。
本发明实施例提供的分布式应用中缓存设计方法及设备,通过在分布式缓存的基础上插入本机缓存,根据缓存分类以及数据的即时性,实时更新本机缓存的版本,可以使本机缓存和分布式缓存满足数据一致性,并且降低了对于分布式缓存的查询压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式应用中缓存设计方法流程图;
图2为本发明实施例提供的在分布式缓存基础上插入本机缓存后的数据流向示意图;
图3为本发明实施例提供的有版本与无版本情况下的不同即时性数据处理原理示意图;
图4为本发明实施例提供的分布式应用中缓存设计装置结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明实施例提供了一种分布式应用中缓存设计方法,参见图1,该方法包括:
101、在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;
102、若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
具体地,在分布式缓存的基础上插入本机缓存的数据流向可以参见图2,分布式缓存(一级缓存),用于缓存所有请求的数据,当分布式缓存不存在请求的数据时,从数据库获取数据的同时在分布式缓存保留一份从数据库获取的数据。本机缓存(二级缓存)为网络服务器自身的缓存,作为二级缓存,若本机缓存存在请求的数据,直接从本机缓存返回,如果本机缓存中不存在所述数据,则从一级缓存获取,返回数据请求方后,本机缓存保留一份请求的数据。每次请求缓存,在用户的一次HttpRequest期间有效,由分布式缓存的Provider自动处理。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,所述本机缓存的类型,包括:列表缓存、实体缓存和/或实体正文缓存;所述列表缓存,用于缓存ModelId列表,并根据所述ModelId列表中的ModelId,组装实体列表;所述实体缓存,用于缓存实体;所述实体正文缓存,用于缓存数据库的内容和/或格式化后的内容;其中,所述ModelId为模型ID。具体地,列表缓存用于缓存ModelId列表,获取实体列表时,依据ModelId自动组装成完整的实体列表;实体缓存用于给每个实体一份单独的缓存空间;实体正文缓存,若实体正文数据量巨大(超过预设阈值)时,为了提升运行效率并减少分布式缓存时的网络流量,将实体正文缓存单独存储,不在实体缓存中存储该部分内容。实体正文缓存可能包含两种情况:数据库存储的内容和格式化后的内容。其中,数据库存储的内容用于编辑时使用(使用频次较少),格式化后的内容用于显示(使用频次较多)。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,所述实体缓存或实体正文缓存,在数据库中进行DML操作,并在仓储中同步存储,数据库改动实体,所述实体的版本号进行增加;将所述分布式缓存的版本号与所述本机缓存的版本号关联,若实体升级,则实体缓存或实体正文缓存根据所述实体升级的信息,构建所述第一版本号,采用所述第二版本号,实现对数据的即时性更新;其中,所述DML操作为数据操作语言操作。具体地,本机缓存和分布式缓存的即时性实现原理可以参见图3,本机缓存与源数据保持同步;为了使本机缓存具有版本(缓存有版本,需即时性数据的情况),若缓存源数据发生变化,递增(也可以是递减,只要是使版本号发生改变均可)对应缓存的版本号,若新版本的缓存不存在,则通过最新的缓存源数据创建,而旧版本的缓存被丢弃,从而保证了缓存的即时性;无版本需即时更新的本机缓存(即缓存无版本,需即时性数据的情况),在分布式缓存情况下,需要做到:保持分布式缓存与源数据同步;获取缓存需要穿透本机缓存直接从分布式缓存获取。缓存无版本,非即时性数据的情况中,直接从本机缓存中获取数据。本机缓存和分布式缓存国企时间类型可以参见表1。
表1
缓存期限类型 描述
Invariable 永久不变的数据
Stable 稳定的数据
RelativelyStable 相对稳定的数据
UsualSingleObject 常用的单个对象
UsualObjectCollection 常用的对象集合
SingleObject 单个对象
ObjectCollection 对象集合
需要说明的是,目前实际使用的都是绝对过期时间(例如:5分钟过期);尽量不要在使用缓存时直接设置具体过期时间;可以配置过期时间因子,用于统一调配预设过期时间类型对应的具体时间。在此基础上,实体缓存及实体正文缓存均在数据库增(Insert)、删(Delete)、改(Update)的同时,在Repository(即仓储)中自动同步缓存;在数据库改动实体的同时,递增实体版本号;在分布式缓存情况下,为了解决分布式缓存与本机缓存的不一致性,对实体缓存及实体正文缓存关联版本号,即当实体Update(Insert、Delete不影响)后,会自动递增缓存关联的版本号,并丢弃旧缓存(的版本号),从而确保数据的即时性。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,所述列表缓存将所述第一版本号与所述分布式缓存的版本号关联,若所述列表缓存中的数据发生改变,所述列表缓存丢弃所述第一版本号,采用所述第二版本号作为所述列表缓存的版本号。具体地,对于列表缓存来说,有些需要即时性,有些不需要即时性。对于不需要即时性的列表缓存,一般根据缓存过期时间,自动过期;对于需要即时性的列表缓存,通过关联版本号,当列表版本号变化时丢弃旧版本的缓存。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,所述列表缓存的版本,包括:全局版本和/或分区版本;若在全局范围内存在针对实体的DML操作,则将所述全局版本的版本号,由所述第一版本号替换为所述第二版本号;若在一分区内存在针对实体的DML操作,则将所述分区版本的版本号,由所述第一版本号替换为所述第二版本号;其中,所述DML操作为数据操作语言操作。具体地,为了尽量提升列表缓存的使用率,把列表缓存的版本分为全局版本和分区版本。全局版本:即有任何同类型实体增(Insert)、删(Delete)、改(Update)都会递增该类型的全局版本;分区版本:即仅该分区内实体增(Insert)、删(Delete)、改(Update)才会递增该分区的版本。需要说明的是,前述的增(Insert)、删(Delete)、改(Update)即为DML(Data ManipulationLanguage,即数据操作语言)操作中的部分操作类型。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,还包括:若分页获取数据,则所述列表缓存存储前30分页的数据。具体地,若分页获取数据,列表缓存仅默认缓存前30分页的数据,因为根据正常访问习惯,30页以后的数据仅有很少一部分人访问,在数据访问中前30页的数据一次性取出全部放入本机缓存。当然,此处的页数可以根据需求而定。例如,可以为10页,15页,20页或25页。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计方法,还包括:若获取推荐或排名数据,则提取前一千条数据的ModelID,存入所述本机缓存。具体地,获取推荐或排名数据时,一般数据不会太多,没必要根据获取的最大数存储成多份缓存,可以直接默认提取前1000条数据的ModelId存成一份缓存(本机缓存和/或分布式缓存中)。当然,此处的数据条数可以根据需求而定。例如,可以为500条,1500条或2000条。
本发明实施例提供的分布式应用中缓存设计方法,通过在分布式缓存的基础上插入本机缓存,根据缓存分类以及数据的即时性,实时更新本机缓存的版本,可以使本机缓存和分布式缓存满足数据一致性,并且降低了对于分布式缓存的查询压力。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种分布式应用中缓存设计装置,该装置用于执行上述方法实施例中的分布式应用中缓存设计方法。参见图4,该装置包括:
本机缓存插入模块401,用于在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;
本机缓存版本号更换模块402,用于若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
本发明实施例提供的分布式应用中缓存设计装置,采用本机缓存插入模块和本机缓存版本号更换模块,通过在分布式缓存的基础上插入本机缓存,根据缓存分类以及数据的即时性,实时更新本机缓存的版本,可以使本机缓存和分布式缓存满足数据一致性,并且降低了对于分布式缓存的查询压力。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征获得相应的技术手段,以及由这些技术手段构成的技术方案,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计装置,还包括:实体缓存或实体正文缓存模块,用于在数据库中进行DML操作,并在仓储中同步存储,数据库改动实体,所述实体的版本号进行增加;将所述分布式缓存的版本号与所述本机缓存的版本号关联,若实体升级,则实体缓存或实体正文缓存根据所述实体升级的信息,构建所述第一版本号,采用所述第二版本号,实现对数据的即时性更新;其中,所述DML操作为数据操作语言操作。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计装置,还包括:列表缓存版本号更换模块,用于将所述第一版本号与所述分布式缓存的版本号关联,若所述列表缓存中的数据发生改变,所述列表缓存丢弃所述第一版本号,采用所述第二版本号作为所述列表缓存的版本号。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计装置,还包括:列表缓存对分页数据的存储模块,用于若分页获取数据,则所述列表缓存存储前30分页的数据。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的分布式应用中缓存设计装置,还包括:本机缓存推荐或排名数据条数获取模块,用于若获取推荐或排名数据,则提取前一千条数据的ModelID,存入所述本机缓存。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图5所示,该电子设备包括:至少一个处理器(processor)501、通信接口(Communications Interface)504、至少一个存储器(memory)502和通信总线503,其中,至少一个处理器501,通信接口504,至少一个存储器502通过通信总线503完成相互间的通信。至少一个处理器501可以调用至少一个存储器502中的逻辑指令,以执行如下方法:在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
此外,上述的至少一个存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。例如包括:在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本专利中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种分布式应用中缓存设计方法,其特征在于,包括:
在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;
若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
2.根据权利要求1所述的分布式应用中缓存设计方法,其特征在于,所述本机缓存的类型,包括:
列表缓存、实体缓存和/或实体正文缓存;
所述列表缓存,用于缓存ModelId列表,并根据所述ModelId列表中的ModelId,组装实体列表;
所述实体缓存,用于缓存实体;
所述实体正文缓存,用于缓存数据库的内容和/或格式化后的内容;
其中,所述ModelId为模型ID。
3.根据权利要求2所述的分布式应用中缓存设计方法,其特征在于,所述实体缓存或实体正文缓存,在数据库中进行DML操作,并在仓储中同步存储,数据库改动实体,所述实体的版本号进行增加;将所述分布式缓存的版本号与所述本机缓存的版本号关联,若实体升级,则实体缓存或实体正文缓存根据所述实体升级的信息,构建所述第一版本号,采用所述第二版本号,实现对数据的即时性更新;
其中,所述DML操作为数据操作语言操作。
4.根据权利要求2所述的分布式应用中缓存设计方法,其特征在于,所述列表缓存将所述第一版本号与所述分布式缓存的版本号关联,若所述列表缓存中的数据发生改变,所述列表缓存丢弃所述第一版本号,采用所述第二版本号作为所述列表缓存的版本号。
5.根据权利要求2所述的分布式应用中缓存设计方法,其特征在于,所述列表缓存的版本,包括:
全局版本和/或分区版本;
若在全局范围内存在针对实体的DML操作,则将所述全局版本的版本号,由所述第一版本号替换为所述第二版本号;
若在一分区内存在针对实体的DML操作,则将所述分区版本的版本号,由所述第一版本号替换为所述第二版本号;
其中,所述DML操作为数据操作语言操作。
6.根据权利要求2所述的分布式应用中缓存设计方法,其特征在于,还包括:
若分页获取数据,则所述列表缓存存储前30分页的数据。
7.根据权利要求1所述的分布式应用中缓存设计方法,其特征在于,还包括:
若获取推荐或排名数据,则提取前一千条数据的ModelID,存入所述本机缓存。
8.一种分布式应用中缓存设计装置,其特征在于,包括:
本机缓存插入模块,用于在分布式缓存的基础上,插入本机缓存,若所述本机缓存中不存在请求数据,则从所述分布式缓存中获取,并将所述请求数据同步至所述本机缓存中;
本机缓存版本号更换模块,用于若所述本机缓存中的源数据发生改变,则所述本机缓存采用第一版本号,若所述第一版本号不存在,则根据发生改变的源数据,构建第二版本号,所述本机缓存丢弃所述第一版本号,采用所述第二版本号作为所述本机缓存的版本号。
9.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行如权利要求1至7任一项权利要求所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7中任一项权利要求所述的方法。
CN201910434779.0A 2019-05-23 2019-05-23 分布式应用中缓存设计方法、装置、设备及存储介质 Pending CN110119409A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910434779.0A CN110119409A (zh) 2019-05-23 2019-05-23 分布式应用中缓存设计方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910434779.0A CN110119409A (zh) 2019-05-23 2019-05-23 分布式应用中缓存设计方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110119409A true CN110119409A (zh) 2019-08-13

Family

ID=67523091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910434779.0A Pending CN110119409A (zh) 2019-05-23 2019-05-23 分布式应用中缓存设计方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110119409A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659306A (zh) * 2019-08-29 2020-01-07 达疆网络科技(上海)有限公司 门店系统各级缓存同步方式
CN111400578A (zh) * 2020-03-02 2020-07-10 金蝶蝶金云计算有限公司 货物数据查询方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537013A (zh) * 2014-12-18 2015-04-22 北京京东尚科信息技术有限公司 一种处理数据的方法和装置
CN106603713A (zh) * 2016-12-29 2017-04-26 深圳Tcl新技术有限公司 会话管理方法和系统
CN107071059A (zh) * 2017-05-25 2017-08-18 腾讯科技(深圳)有限公司 分布式缓存服务实现方法、装置、终端、服务器及系统
CN107463511A (zh) * 2017-01-23 2017-12-12 北京思特奇信息技术股份有限公司 一种基于多级缓存的数据国际化实现方法及装置
US20180365271A1 (en) * 2017-06-16 2018-12-20 Amadeus S.A.S. Systems and methods for geographically distributed database systems
CN109189797A (zh) * 2018-09-06 2019-01-11 北京奇艺世纪科技有限公司 一种数据更新方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537013A (zh) * 2014-12-18 2015-04-22 北京京东尚科信息技术有限公司 一种处理数据的方法和装置
CN106603713A (zh) * 2016-12-29 2017-04-26 深圳Tcl新技术有限公司 会话管理方法和系统
CN107463511A (zh) * 2017-01-23 2017-12-12 北京思特奇信息技术股份有限公司 一种基于多级缓存的数据国际化实现方法及装置
CN107071059A (zh) * 2017-05-25 2017-08-18 腾讯科技(深圳)有限公司 分布式缓存服务实现方法、装置、终端、服务器及系统
US20180365271A1 (en) * 2017-06-16 2018-12-20 Amadeus S.A.S. Systems and methods for geographically distributed database systems
CN109189797A (zh) * 2018-09-06 2019-01-11 北京奇艺世纪科技有限公司 一种数据更新方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐道珍: "连锁超市企业知识管理系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659306A (zh) * 2019-08-29 2020-01-07 达疆网络科技(上海)有限公司 门店系统各级缓存同步方式
CN111400578A (zh) * 2020-03-02 2020-07-10 金蝶蝶金云计算有限公司 货物数据查询方法、装置、计算机设备和存储介质
CN111400578B (zh) * 2020-03-02 2024-04-05 金蝶蝶金云计算有限公司 货物数据查询方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN109413127B (zh) 一种数据同步方法和装置
CN108200220B (zh) 一种数据同步方法、服务器及存储介质
CN109947668B (zh) 存储数据的方法和装置
US11921749B2 (en) Synchronization adapter for synchronizing application data
US10067958B2 (en) Supporting transient snapshot with coordinated/uncoordinated commit protocol
US9811577B2 (en) Asynchronous data replication using an external buffer table
CN108121827B (zh) 一种全量数据的同步方法及装置
CN107463511B (zh) 一种基于多级缓存的数据国际化实现方法及装置
US7769792B1 (en) Low overhead thread synchronization system and method for garbage collecting stale data in a document repository without interrupting concurrent querying
WO2021003921A1 (zh) 数据处理方法及终端设备
US8386460B1 (en) Managing URLs
CN104572979A (zh) 一种处理结构化查询语言sql的方法及装置
CN103207919A (zh) 一种MongoDB集群快速查询计算的方法及装置
CN103365873A (zh) 业务数据的推送方法及装置
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN110543495A (zh) 游标遍历存储方法及装置
CN112579695A (zh) 一种数据同步方法和装置
CN110119409A (zh) 分布式应用中缓存设计方法、装置、设备及存储介质
CN114237806B (zh) 一种页面信息的显示方法、装置、电子设备及存储介质
CN111753141B (zh) 一种数据管理方法及相关设备
CN109101621A (zh) 一种数据的批量处理方法及系统
US20170322957A1 (en) Allocating free space in a database
US20090132493A1 (en) Method for retrieving and editing HTML documents
US11947817B2 (en) Memory mapping to enhance data cube performance
CN110955855A (zh) 一种信息拦截的方法、装置及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190813