CN108446356B - 数据缓存方法、服务器及数据缓存系统 - Google Patents

数据缓存方法、服务器及数据缓存系统 Download PDF

Info

Publication number
CN108446356B
CN108446356B CN201810200090.7A CN201810200090A CN108446356B CN 108446356 B CN108446356 B CN 108446356B CN 201810200090 A CN201810200090 A CN 201810200090A CN 108446356 B CN108446356 B CN 108446356B
Authority
CN
China
Prior art keywords
data
node
level
cache
data caching
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.)
Active
Application number
CN201810200090.7A
Other languages
English (en)
Other versions
CN108446356A (zh
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201810200090.7A priority Critical patent/CN108446356B/zh
Publication of CN108446356A publication Critical patent/CN108446356A/zh
Application granted granted Critical
Publication of CN108446356B publication Critical patent/CN108446356B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

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

Abstract

本发明提出一种数据缓存方法、服务器及数据缓存系统。本发明采用了一种树形结构的缓存服务,将用户数据缓存在树的各个节点上,从而可以分摊各种网站缓存服务单一节点缓存的压力。同时,当各种网站主站根节点的缓存数据发生变化时,根节点采用异步通知的方式通知下级子节点更新数据,子节点再逐层向下的方式异步通知,不影响主流程的实现。

Description

数据缓存方法、服务器及数据缓存系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据缓存方法、服务器及数据缓存系统。
背景技术
随着互联网技术的不断发展,各种服务性、娱乐性等网站出现,给人们的生活带来了极大的便利,但是用户登录各种网站产生的大量用户数据,也对各网站的服务器的储存能力提出新的要求。
目前,各网站内的用户数据基本由网站服务器统一存储和管理,各个网站子部门需要查询和使用时可向网站主站发出请求,以获得所需的用户数据。但是,随着网站内的业务规模的扩大和子业务部门的增多,对网站主站的每秒查询率(QPS)的要求会非常大。这种情况下网站会将用户数据放入缓存来缓解服务的压力。但是随着网站业务规模的不断扩大,当前各种网站的缓存服务仍然无法满足其各子业务部门庞大的请求所带来的压力。
发明内容
针对上述问题,本发明提出一种数据缓存方法、服务器及数据缓存系统。本发明采用了一种树形结构的缓存服务,将用户数据缓存在树的各个节点上,从而可以分摊各种网站缓存服务单一节点缓存的压力。同时,当各种网站主站根节点的缓存数据发生变化时,根节点采用异步通知的方式通知下级子节点更新数据,子节点再逐层向下的方式异步通知,不影响主流程的实现。
具体地,本发明一方面提供一种数据缓存方法,其包括以下步骤:创建一树状多级缓存结构,所述树状多级缓存结构包括一根节点,所述根节点下至少关联一一级子节点;接收一访问一目标数据的访问请求,根据所述访问请求,从末级子节点开始检索所述目标数据;当所述末级子节点中无所述目标数据,或所述末级子节点不可用,逐级向上一级子节点检索所述目标数据,直至获取所述目标数据,并向外发送所述目标数据。
优选地,所述树状多级缓存结构包括一根节点,所述根节点下关联一层一级子节点,所述一级子节点下关联一层二级子节点,所述二级子节点下关联一层三级子节点。
优选地,所述树状多级缓存结构中,每一节点下关联两个下级子节点。
优选地,上述数据缓存方法中,当所述根节点中的数据信息发生变更时,通过异步通知,逐级向下通知各级子节点所述数据信息的变更。
本发明的另一方面,在于提供一种数据缓存方法,所述数据缓存方法应用于服务器与用户端之间,所述服务器与用户端执行如上所述的数据缓存方法。
本发明的另一方面,在于提供一种服务器,包括处理器和存储设备,所述存储设备存储有计算机程序,所述处理器调用并执行所述计算机程序时实现如如上所述的数据缓存方法。
本发明的另一方面在于,提供一种数据缓存系统,所述数据缓存系统包括服务器与用户端,所述服务器与用户端执行如上所述的数据缓存方法。
采用了上述技术方案后,与现有技术相比,具有以下有益效果:
1.本发明的数据缓存方法提高了缓存系统的可用性和健壮性,在相同请求峰值的情况下,本发明的树状多级缓存系统的承载能力可以提升5到10倍;
2.本发明降低了用户的请求访问耗时,用户可以从最近的子节点缓存上直接取到数据并返回,不必再调用网站的主站服务;
3.本发明提高了缓存系统的稳定性,在网站主站服务不可用的情况下,用户仍然可以从子节点的缓存服务上获取数据;
4.本发明提高了缓存系统中缓存的数据的一致性,当网站主站根节点的缓存数据发生变化时,会采用异步通知的方式通知下级子节点更新数据,子节点再逐层向下的方式异步通知。
附图说明
图1为符合本发明一优选实施例中数据缓存方法的流程示意图;
图2为符合本发明一优选实施例中的树状多级缓存结构的结构简图。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
参阅图1,其为符合本发明一优选实施例中数据缓存方法的流程示意图,从图中可以看出,该实施例中所提供的数据缓存方法主要包括以下步骤:
创建一树状多级缓存结构,所述树状多级缓存结构包括一根节点,所述根节点下至少关联一一级子节点;从而,当接收一访问一目标数据的访问请求时,根据所述访问请求,从末级子节点开始检索所述目标数据;当所述末级子节点中无所述目标数据,或所述末级子节点不可用,逐级向上一级子节点检索所述目标数据,直至获取所述目标数据;从而,向外发送所述目标数据。
其中,该树状多级缓存结构包括一根节点,而该根节点下关联一层一级子节点,该一级子节点下又关联一层二级子节点,二级子节点下关联一层三级子节点,三级子节点下又可关联一层四级子节点等,根据具体应用的不同,该树状多级缓存结构可以延伸为包括n级子节点。
而,该根节点或者每个子节点上可根据需求关联两个及以上的下级子节点。
另外,在另一优选地实施例中,当所述根节点中的数据信息发生变更时,该实施例中,通过异步通知,逐级向下通知各级子节点所述数据信息的变更。因为,异步通知中,各发出变更通知的根节点或者子节点,不需要一直等待返回信息,而是继续执行下面的操作,不管其他进程的状态,当有消息返回时系统会通知进程进行处理。从而,可以提高执行的效率,同时不影响主流程的实现。
下面通过具体实施例,详细阐述本发明的应用及其优势。
实施例一:
一互联网网站应用本发明所提出的数据缓存方法,在该网站的服务器端创建一树状多级缓存结构。参阅图2,其为一符合本发明一优选实施例中的树状多级缓存结构的结构简图。从图中可以看出,该树状多级缓存结构包括四级节点,其中,从上往下,包括一公司缓存服务作为根节点;该公司缓存服务下关联部门1缓存服务及部门2缓存服务作为一级子节点;部门1缓存服务下关联二级部门11缓存服务、二级部门12缓存服务作为二级子节点,同时部门2缓存服务下关联二级部门21缓存服务、二级部门22缓存服务作为二级节点;而,二级部门11缓存服务下再关联项目组111缓存服务、项目组112缓存服务,二级部门12缓存服务下再关联项目组121缓存服务、项目组122缓存服务,二级部门21缓存服务下再关联项目组211缓存服务、项目组212缓存服务,二级部门22缓存服务下再关联项目组221缓存服务、项目组222缓存服务作为三级子节点。
则,当该网站的服务器接收到一用户端发出的访问一用户A的数据信息时,服务器首先在各项目组缓存服务中检索是否存在该用户A的数据信息,若一项目组缓存服务中,如项目组212缓存服务中存在该用户A的数据信息时,服务器直接从项目组212中读取该用户A的数据信息,并将该数据信息返回至用户端;
当各项目组缓存服务中均不存在该用户A的数据信息,或者各项目组缓存服务不可用时,服务器则在二级部门缓存服务中继续检索该用户A的数据信息,若一二级部门缓存服务中,如二级部门21缓存服务中存在该用户A的数据信息时,服务器直接从该二级部门21缓存服务中读取该用户A的数据信息,并将该数据信息返回至用户端;
而,当各二级部门缓存服务中均不存在该用户A的数据信息,或者各二级部门缓存服务不可用时,服务器则在部门缓存服务中继续检索该用户A的数据信息,若一部门缓存服务中,如部门2缓存服务中存在该用户A的数据信息时,服务器直接从该部门2缓存服务中读取该用户A的数据信息,并将该数据信息返回至用户端;
而,当各部门缓存服务中均不存在该用户A的数据信息,或者各部门缓存服务不可用时,服务器则继续在公司缓存服务中检索该用户A的数据信息,并从公司缓存服务中读取该用户A的数据信息,并将该数据信息返回至用户端。
通过上述操作,提高了缓存系统的可用性和健壮性,在相同请求峰值的情况下,该树状多级缓存系统的承载能力可以提升5到10倍;同时,降低了用户的请求访问耗时,用户可以从最近的子节点缓存上直接取到数据并返回,不必再调用网站的主站服务;而且提高了缓存系统的稳定性,在网站主站服务不可用的情况下,用户仍然可以从子节点的缓存服务上获取数据。
另外,当服务器接收到用户端发送的用户B的变更的数据信息时,服务器通过异步通知的方法,逐级通知公司缓存服务、部门缓存服务、二级部门缓存服务及项目组缓存服务。由于异步通知,各发出变更通知的根节点或者子节点,不需要一直等待返回信息,而是继续执行下面的操作,不管其他进程的状态,当有消息返回时系统会通知进程进行处理。从而,可以提高执行的效率,同时不影响主流程的实现。
综上所述,本发明提出的数据缓存方法、服务器及数据缓存系统,采用了一种树形结构的缓存服务,将用户数据缓存在树的各个节点上,从而可以分摊各种网站缓存服务单一节点缓存的压力。同时,当各种网站主站根节点的缓存数据发生变化时,根节点采用异步通知的方式通知下级子节点更新数据,子节点再逐层向下的方式异步通知,不影响主流程的实现。
应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。

Claims (6)

1.一种数据缓存方法,其特征在于,包括以下步骤:
创建一树状多级缓存结构,所述树状多级缓存结构包括一根节点,所述根节点下至少关联一一级子节点,
接收一访问一目标数据的访问请求,
根据所述访问请求,从末级子节点开始检索所述目标数据,
当各个末级子节点中均无所述目标数据,或各个末级子节点均不可用,逐级向上一级子节点检索所述目标数据,直至获取所述目标数据,
向外发送所述目标数据;
当所述根节点中的数据信息发生变更时,通过异步通知,逐级向下通知各级子节点所述数据信息的变更。
2.如权利要求1所述的数据缓存方法,其特征在于,
所述树状多级缓存结构包括一根节点,所述根节点下关联一层一级子节点,所述一级子节点下关联一层二级子节点,所述二级子节点下关联一层三级子节点。
3.如权利要求1所述的数据缓存方法,其特征在于,
所述树状多级缓存结构中,每一节点下关联两个下级子节点。
4.一种数据缓存方法,其特征在于,所述数据缓存方法应用于服务器与用户端之间,所述服务器与用户端执行如权利要求1-3任意一项所述的数据缓存方法。
5.一种服务器,包括处理器和存储设备,所述存储设备存储有计算机程序,其特征在于,所述处理器调用并执行所述计算机程序时实现如权利要求1-3任一项所述的数据缓存方法。
6.一种数据缓存系统,其特征在于,所述数据缓存系统包括服务器与用户端,所述服务器与用户端执行如权利要求1-3任意一项所述的数据缓存方法。
CN201810200090.7A 2018-03-12 2018-03-12 数据缓存方法、服务器及数据缓存系统 Active CN108446356B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810200090.7A CN108446356B (zh) 2018-03-12 2018-03-12 数据缓存方法、服务器及数据缓存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810200090.7A CN108446356B (zh) 2018-03-12 2018-03-12 数据缓存方法、服务器及数据缓存系统

Publications (2)

Publication Number Publication Date
CN108446356A CN108446356A (zh) 2018-08-24
CN108446356B true CN108446356B (zh) 2023-08-29

Family

ID=63193992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810200090.7A Active CN108446356B (zh) 2018-03-12 2018-03-12 数据缓存方法、服务器及数据缓存系统

Country Status (1)

Country Link
CN (1) CN108446356B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684282B (zh) * 2018-11-23 2021-01-01 华为技术有限公司 一种构建元数据缓存的方法及装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493012A2 (en) * 1990-12-21 1992-07-01 Fujitsu Limited Control system for cache storage unit
CN101098249A (zh) * 2006-06-29 2008-01-02 明基电通股份有限公司 状态同步系统及方法
CN101739463A (zh) * 2009-12-17 2010-06-16 上海交通大学 互联网服务查找优化方法
CN102546751A (zh) * 2011-12-06 2012-07-04 华中科技大学 一种分布式文件系统分级元数据缓存控制方法
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
CN103544191A (zh) * 2012-07-17 2014-01-29 人人游戏网络科技发展(上海)有限公司 一种用于读取缓存数据的方法和设备
CN103793538A (zh) * 2014-03-06 2014-05-14 赛特斯信息科技股份有限公司 实现数据库宕机情况下网站服务恢复的系统及方法
CN104142896A (zh) * 2013-05-10 2014-11-12 阿里巴巴集团控股有限公司 一种缓存控制方法和系统
CN104683485A (zh) * 2015-03-25 2015-06-03 重庆邮电大学 一种基于c-ran的互联网内容缓存预加载方法和系统
CN105183394A (zh) * 2015-09-21 2015-12-23 北京奇虎科技有限公司 一种数据存储处理方法和装置
CN105653621A (zh) * 2015-12-25 2016-06-08 中国建设银行股份有限公司 不间断业务系统及其数据导出方法、流数据服务模块
CN105955984A (zh) * 2016-04-19 2016-09-21 中国银联股份有限公司 基于爬虫模式的网络数据搜索方法
CN106210117A (zh) * 2016-08-01 2016-12-07 浪潮软件股份有限公司 一种通过云端缓存实现的高性能服务架构
CN106407334A (zh) * 2016-09-05 2017-02-15 乐视控股(北京)有限公司 缓存集群的更新方法及装置
CN106599043A (zh) * 2016-11-09 2017-04-26 中国科学院计算技术研究所 用于多级数据库的中间件和多级数据库系统

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493012A2 (en) * 1990-12-21 1992-07-01 Fujitsu Limited Control system for cache storage unit
CN101098249A (zh) * 2006-06-29 2008-01-02 明基电通股份有限公司 状态同步系统及方法
CN101739463A (zh) * 2009-12-17 2010-06-16 上海交通大学 互联网服务查找优化方法
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
CN102546751A (zh) * 2011-12-06 2012-07-04 华中科技大学 一种分布式文件系统分级元数据缓存控制方法
CN103544191A (zh) * 2012-07-17 2014-01-29 人人游戏网络科技发展(上海)有限公司 一种用于读取缓存数据的方法和设备
CN104142896A (zh) * 2013-05-10 2014-11-12 阿里巴巴集团控股有限公司 一种缓存控制方法和系统
CN103793538A (zh) * 2014-03-06 2014-05-14 赛特斯信息科技股份有限公司 实现数据库宕机情况下网站服务恢复的系统及方法
CN104683485A (zh) * 2015-03-25 2015-06-03 重庆邮电大学 一种基于c-ran的互联网内容缓存预加载方法和系统
CN105183394A (zh) * 2015-09-21 2015-12-23 北京奇虎科技有限公司 一种数据存储处理方法和装置
CN105653621A (zh) * 2015-12-25 2016-06-08 中国建设银行股份有限公司 不间断业务系统及其数据导出方法、流数据服务模块
CN105955984A (zh) * 2016-04-19 2016-09-21 中国银联股份有限公司 基于爬虫模式的网络数据搜索方法
CN106210117A (zh) * 2016-08-01 2016-12-07 浪潮软件股份有限公司 一种通过云端缓存实现的高性能服务架构
CN106407334A (zh) * 2016-09-05 2017-02-15 乐视控股(北京)有限公司 缓存集群的更新方法及装置
CN106599043A (zh) * 2016-11-09 2017-04-26 中国科学院计算技术研究所 用于多级数据库的中间件和多级数据库系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于无线传感器网络的粮仓监控系统研究;张振;《中国优秀硕士学位论文全文数据库 信息科技辑》;I140-535 *

Also Published As

Publication number Publication date
CN108446356A (zh) 2018-08-24

Similar Documents

Publication Publication Date Title
US11341202B2 (en) Efficient method of location-based content management and delivery
US11010429B2 (en) Dynamic social network relationship determination method and apparatus
CN100462979C (zh) 分布式索引文件的检索方法、检索系统及检索服务器
CN103812849B (zh) 一种本地缓存更新方法、系统、客户端及服务器
CN103312624B (zh) 一种消息队列服务系统和方法
CN104539681B (zh) 分布式gis加速系统和gis服务的处理方法
US20140280606A1 (en) Method and Apparatus for Content Management
US20110320532A1 (en) Data operating method, system, client, and data server
US20100318584A1 (en) Distributed Cache Availability During Garbage Collection
CN102971732A (zh) 键/值存储器的集成分级查询处理的系统结构
CN107800808A (zh) 一种基于Hadoop架构的数据存储系统
CN105554121A (zh) 实现分布式缓存系统负载均衡的方法及系统
CN105357247B (zh) 基于分层云对等网络的多维属性云资源区间查找方法
CN112799839B (zh) 请求处理方法、装置、计算机可读存储介质及电子设备
KR101118076B1 (ko) 콘텐츠를 배포하는 방법 및 시스템과, 콘텐츠를 검색하는 방법 및 시스템
CN106959928A (zh) 一种基于多级缓存结构的流式数据实时处理方法及系统
CN106960011A (zh) 分布式文件系统元数据管理系统及方法
CN111526208A (zh) 一种基于微服务的高并发云平台文件传输优化方法
CN102404372A (zh) Web缓存中内容分布式存储的方法、系统及节点设备
CN109597903A (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN101344882B (zh) 数据查询方法、插入方法及删除方法
CN103107944A (zh) 一种内容定位方法和路由设备
CN108153759B (zh) 一种分布式数据库的数据传输方法、中间层服务器及系统
CN108446356B (zh) 数据缓存方法、服务器及数据缓存系统
CN102325098B (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
GR01 Patent grant
GR01 Patent grant