CN106021468A - 分布式缓存和本地缓存的更新方法和系统 - Google Patents

分布式缓存和本地缓存的更新方法和系统 Download PDF

Info

Publication number
CN106021468A
CN106021468A CN201610328064.3A CN201610328064A CN106021468A CN 106021468 A CN106021468 A CN 106021468A CN 201610328064 A CN201610328064 A CN 201610328064A CN 106021468 A CN106021468 A CN 106021468A
Authority
CN
China
Prior art keywords
data item
data
key
distributed caching
renewal
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.)
Granted
Application number
CN201610328064.3A
Other languages
English (en)
Other versions
CN106021468B (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 Ctrip Business Co Ltd
Original Assignee
Shanghai Ctrip Business 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 Ctrip Business Co Ltd filed Critical Shanghai Ctrip Business Co Ltd
Priority to CN201610328064.3A priority Critical patent/CN106021468B/zh
Publication of CN106021468A publication Critical patent/CN106021468A/zh
Application granted granted Critical
Publication of CN106021468B publication Critical patent/CN106021468B/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分布式缓存和本地缓存的更新方法和系统,包括:建立一分布式缓存,其存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;判断分布式缓存内是否存在无效数据项,并在判断结果为是时进入执行:向存在无效数据项的分布式缓存的客户端节点串行插入无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取无效数据项对应的最新数据项以更新分布式缓存中的无效数据项,并记录无效数据项的更新时刻。本发明保证只有一个更新键插入成功的客户端节点对数据库进行访问,大大降低了对数据库进行大批量访问所造成的访问压力,不会出现惊群效应,使得数据库能够保持稳定。

Description

分布式缓存和本地缓存的更新方法和系统
技术领域
本发明涉及一种分布式缓存和本地缓存的更新方法和系统。
背景技术
分布式缓存是由一个服务端实现管理和控制,有多个客户端节点存储数据,可以进一步提高数据的读取速率的缓存系统。而本地缓存是将客户机本地的物理内存划分出一部分空间用来缓冲客户机回写到服务器的数据。通常,分布式缓存内和本地缓存内存储的数据都需要及时更新,以在用户向服务器端访问数据时,能够从缓存内获得最新最准确的数据。然而,现有技术中分布式缓存内的数据在过期时会大批量地向数据源请求最新的数据,易出现惊群效应,从而会对数据库造成极大的访问压力,使得数据库不稳定,因此现有技术中的分布式缓存的更新方法亟待改进。
发明内容
本发明要解决的技术问题是为了克服现有技术中的分布式缓存内的数据过期时,会大批量地向数据源请求最新的数据,易出现惊群效应,从而会对数据库造成极大的访问压力,使得数据库不稳定的缺陷,提供一种分布式缓存和本地缓存的更新方法和系统。
本发明是通过下述技术方案解决上述技术问题的:
一种分布式缓存的更新方法,其特点在于,包括:
S1、建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
S2、根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时进入步骤S3
S3、向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻。
在本方案中,利用争抢更新键的机制更新分布式缓存,有效减少了请求数据源(如DB,database,数据库)的次数,保证了DB的稳定性,彻底实现了缓存跟集群规模请求无关性,有利于集群的横向扩展,并且随着不同集群的机器数量的增加,分摊了各机器填充缓存的请求调用,反而减轻了各机器的负载。利用对数据项是否无效的检测机制,可以实时更新数据,提高客户端的数据新鲜度和响应时间。
较佳地,所述数据项的内容包括数据键和所述数据键的键值,步骤S2中根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项包括:
S21、判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,执行步骤S22
S22、判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
较佳地,步骤S21在判断结果为是时,步骤S3中以同步请求的方式执行所述无效数据项的更新;步骤S22在判断结果为是时,步骤S3中以异步请求的方式执行所述无效数据项的更新。
较佳地,所述更新键存储于一第二分布式缓存中,所述更新方法包括:
S41、判断同一客户端节点的更新键插入失败的次数是否达到一次数阈值,若是,将所述更新键存储于一数据库中。
在本方案中,利用第二分布式缓存和数据库存储更新键的机制,提高系统的稳定性,保证了数据项的及时更新和输出。
较佳地,步骤S2在外部设备向所述分布式缓存请求所述数据项时执行所述分布式缓存内是否存在无效数据项的判断,或者周期性地执行所述分布式缓存内是否存在无效数据项的判断。
较佳地,步骤S3之后还包括:
S42、判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,返回步骤S3
较佳地,步骤S3中当所述更新键插入失败时以同步请求的方式再次获取分布式缓存内的数据项,和/或,步骤S3中当所述无效数据项更新完成时,以同步请求的方式返回更新了的数据项。
本发明还提供一种本地缓存的更新方法,其特点在于,其利用如上所述的分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项。
较佳地,当利用分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
本发明还提供一种分布式缓存的更新系统,其特点在于,包括一建立模块、一判断模块和一插入并更新模块;
所述建立模块用于建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
所述判断模块用于根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时调用所述插入并更新模块;
所述插入并更新模块用于向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻。
较佳地,所述数据项的内容包括数据键和所述数据键的键值,所述判断模块包括第一判断模块和第二判断模块;
所述第一判断模块用于判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,调用所述第二判断模块;
所述第二判断模块用于判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
较佳地,所述插入并更新模块用于在所述第一判断模块的判断结果为是时以同步请求的方式执行所述无效数据项的更新,在所述第二判断模块的判断结果为是时以异步请求的方式执行所述无效数据项的更新。
较佳地,所述更新系统还包括第三判断模块,所述第三判断模块用于判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,调用所述插入并更新模块。
本发明还提供一种本地缓存的更新系统,其特点在于,其利用如上所述的分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项。
较佳地,还包括一更新模块,所述更新模块用于在利用分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
本发明的积极进步效果在于:本发明通过向多个数据项过期的客户端节点串行插入一个更新键,使得仅有插入更新键成功的客户端节点才能执行更新,由于插入更新键的方式是以串行的方式执行,因此多个客户端节点中仅会有一个客户端节点能够插入成功,而其余的客户端节点的数据项会从更新的客户端节点的数据项中同步获得数据的更新。因此能够保证只有一个更新键插入成功的客户端节点对数据库进行访问,大大降低了现有技术中分布式缓存对数据库进行大批量访问所造成的访问压力,不会出现惊群效应,使得数据库能够保持稳定。
附图说明
图1为本发明实施例1的分布式缓存的更新方法流程图。
图2为本发明实施例3的分布式缓存的更新系统的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种分布式缓存的更新方法,如图1所示,包括:
步骤101、建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
所述数据项的内容可包括数据键和所述数据键的键值,过期时长是对于每一数据项的存活周期,当超过存活周期时,数据项则为过期数据,一旦过期,数据项内的键值就会自动被删除,而一旦键值被删除后分布式缓存就需要同步等待填充。但有些数据项,即便过期也会由于某些原因没有及时删除,过期数据项仍然会存在,因此需对该些数据项进行更新。所述更新键存储于一第二分布式缓存中。
步骤102、根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时进入步骤103;
若不存在无效数据项,则可在外部设备请求数据项时返回该有效的数据项,或者外部设备不请求数据项时,保持该有效的数据项。而无效数据项的判断方法为:判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
也即,将不存在键值和键值过期的数据项均视为无效数据项,此外无效数据项还可包括键值是错误值的情形。步骤102在外部设备向所述分布式缓存请求所述数据项时执行所述分布式缓存内是否存在无效数据项的判断,或者周期性地执行所述分布式缓存内是否存在无效数据项的判断。即,步骤102的触发条件可以是外部设备请求分布式缓存内的数据项时执行的对数据项的判断操作,当外部设备请求获得一数据项时,则判断请求的该数据项是否无效;而触发条件也可以是系统设定的定期自动判断,以定期检查分布式缓存内是否存在无效数据项。
步骤103、向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻;
假设分布式缓存内的键值对应有5个客户端节点,其中有三个客户端节点的数据项无效,但其键值仍然存在,三个客户端节点会采用异步更新的方式请求从所述第二分布式缓存中插入各自对应的更新键,由于三个客户端均是串行执行所述更新键的插入操作,使得其中只有一个客户端节点的更新键插入成功。对于更新键插入成功的情形可以但不限于是运行性能较好的客户端节点获得该更新键,或者是处于串行队列之首的客户端节点获得该更新键。可以理解,该更新键是否插入成功是作为数据项能否更新的条件。
数据源可为外部的数据库,或者第三方接口数据等。
针对数据键的键值不存在的情形,步骤103中以同步请求的方式执行所述无效数据项的更新:即只要有一个客户端节点成功插入更新键并完成数据项的更新,便会在当前线程下将更新完成的数据项及时返回至请求数据项的一方。可以说,采用同步请求的方式不会产生程序错误,能够保证外部设备请求分布式缓存内的数据时,能够在当前线程下获得响应数据。
而针对数据键的键值过期的情形,步骤103中以异步请求的方式执行所述无效数据项的更新。即外部设备请求获得分布式缓存的数据项时,分布式缓存可通过其它线程返回更新了的数据项,而请求数据项的当前线程则可执行其它任务。可以说,采用异步请求的方式能够提高线程的执行效率,由于过期数据仍然存在,因此过期数据也是可以在当前线程返回至请求端,以保证程序不会出错。
此外,步骤103中当所述更新键插入失败时以同步请求的方式再次获取分布式缓存内的数据项,和/或,步骤103中当所述无效数据项更新完成时,以同步请求的方式返回更新了的数据项。
也即,针对插入更新键失败的客户端节点,还可等待一时间段后,如10ms(毫秒),外部设备继续向分布式缓存请求数据项,直到获得分布式缓存返回的更新了的数据项为止。而对于更新完成的数据项,则也可在外部设备请求后及时将更新了的数据项返回至外部设备,能够保证过期数据项的可靠更新。
而记录无效数据项的更新时刻,则能够在无效数据项更新为有效数据项之后,通过该更新时刻与设定的数据项的存活周期(即所述过期时长),能够推出更新了的数据项下一次变为无效数据项的时间节点(即为更新时刻加上所述过期时长后的时间节点)。
步骤103之后还包括:
步骤1041、判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,返回步骤103。
对插入更新键成功的客户端节点的更新时长进行限制,能够保障客户端节点更新数据项的可靠性。对于在时长阈值内完成更新操作的情形,执行:
步骤1042、其余的存在无效数据项的客户端节点与已经更新了的客户端节点的数据项实现同步更新。
而在超过时长阈值后,所述具有无效数据项的客户端节点则会重新执行步骤103的操作。
更新键可以存储于第二分布式缓存中,也可存储于数据库中,本实施例还可对第二分布式缓存内的更新键的存活状态进行监控:判断同一客户端节点的更新键插入失败的次数是否达到一次数阈值,如3次,若是,将所述更新键存储于一数据库中。
即达到所述次数阈值时说明第二分布式缓存出现故障,此时则可使用数据库中存储的所述更新键执行插入操作,以保障无效数据项的及时更新。
可见,本实施例通过抢占更新键的方式来判断更新的执行权,只有抢占更新键成功的客户端节点,才能执行更新操作。而由于Redis(一个key-value键值存储系统)自带分布式锁,因此本实施例的分布式缓存可用Redis实现。本实施例请求更新的数量,跟集群的机器数量多少无关,原则上该时长阈值内,只有一个客户端节点的键值执行更新,这样就可以保证所有的客户端节点都可以成为一个缓存key(键)的更新点,从而充分利用资源。其具有很强的容错性能,保证一直有数据存在,且分布式缓存的性能优异,缓存机制可靠。
本实施例通过向多个数据项无效的客户端节点串行插入一个更新键,使得仅有插入更新键成功的客户端节点才能执行更新,由于插入更新键的方式是以串行的方式执行,因此多个客户端节点中仅会有一个客户端节点能够插入成功,而其余的客户端节点的键值会从更新的客户端节点的键值中同步获得数据的更新。因此能够保证只有一个更新键插入成功的客户端节点对数据库进行访问,大大降低了现有技术中分布式缓存对数据库进行大批量访问所造成的访问压力,不会出现惊群效应,使得数据库能够保持稳定。
实施例2
本实施例提供一种本地缓存的更新方法,其利用如实施例1所述的分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项。当利用分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
本实施例的本地缓存的更新原理与分布式缓存的更新原理相同,只是本地缓存的数据项的更新来源于分布式缓存提供的数据项。也即,本地缓存内的数据的更新可以通过从分布式缓存中获取数据以执行更新,当更新失败时,再从数据源中获得相应的数据进行更新,以尽可能地减少缓存更新所造成的对数据库的批量访问次数。本实施例的本地缓存的更新方法请求更新的数量,也跟集群的机器数量多少无关。原则上该时长阈值内,只有一台机器执行更新,这样就可以保证所有的机器都可以成为一个缓存Key的更新点,从而充分利用资源,又节约资源。且保证所有机器的同一个缓存Key,数据源唯一,即同一个分布式缓存上的数据,保证数据一致性。且本地缓存的更新不再依赖于DB(database,数据库),而是直接从分布式缓存获取,提高了更新性能。且可以把DB更新作为备选方案,防止分布式缓存Down(停机)机后数据持续更新。
本实施例利用分布式缓存更新的可靠性和响应时间短的特性,有效减少了对DB的请求次数,保证了DB的稳定性,对于集群规模的扩大,也只是增加了对更新键的访问量,利用本地数据项的过期检测和分布式缓存更新方法的数据新鲜度,基本保证所有集群的本地缓存的数据一致性,对于更新失败的情况下,有效利用一定时期的过期缓存,保证数据的输出。
实施例3
本实施例提供一种分布式缓存的更新系统100,如图2所示,包括一建立模块1、一判断模块2和一插入并更新模块3;
所述建立模块1用于建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
所述判断模块2用于根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时调用所述插入并更新模块;
所述插入并更新模块3用于向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻。
所述数据项的内容包括数据键和所述数据键的键值,所述判断模块1包括第一判断模块21和第二判断模块22;
所述第一判断模块21用于判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,调用所述第二判断模块;
所述第二判断模块22用于判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
所述插入并更新模块3用于在所述第一判断模块的判断结果为是时以同步请求的方式执行所述无效数据项的更新,在所述第二判断模块的判断结果为是时以异步请求的方式执行所述无效数据项的更新。
所述更新系统还包括第三判断模块4,所述第三判断模块4用于判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,调用所述插入并更新模块3。
本实施例可以采用实施例1所述的更新方法工作,其具有与实施例1相同的技术效果。
实施例4
本实施例提供一种本地缓存的更新系统,其利用如实施例3所述的分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项。所述更新系统还包括一更新模块,所述更新模块用于在利用分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
本实施例可以采用实施例2所述的更新方法工作,其具有与实施例2相同的技术效果。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (15)

1.一种分布式缓存的更新方法,其特征在于,包括:
S1、建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
S2、根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时进入步骤S3
S3、向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻。
2.如权利要求1所述的更新方法,其特征在于,所述数据项的内容包括数据键和所述数据键的键值,步骤S2中根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项包括:
S21、判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,执行步骤S22
S22、判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
3.如权利要求2所述的更新方法,其特征在于,步骤S21在判断结果为是时,步骤S3中以同步请求的方式执行所述无效数据项的更新;步骤S22在判断结果为是时,步骤S3中以异步请求的方式执行所述无效数据项的更新。
4.如权利要求1所述的更新方法,其特征在于,所述更新键存储于一第二分布式缓存中,所述更新方法包括:
S41、判断同一客户端节点的更新键插入失败的次数是否达到一次数阈值,若是,将所述更新键存储于一数据库中。
5.如权利要求1所述的更新方法,其特征在于,步骤S2在外部设备向所述分布式缓存请求所述数据项时执行所述分布式缓存内是否存在无效数据项的判断,或者周期性地执行所述分布式缓存内是否存在无效数据项的判断。
6.如权利要求1所述的更新方法,其特征在于,步骤S3之后还包括:
S42、判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,返回步骤S3
7.如权利要求1-6中任意一项所述的更新方法,其特征在于,步骤S3中当所述更新键插入失败时以同步请求的方式再次获取分布式缓存内的数据项,和/或,步骤S3中当所述无效数据项更新完成时,以同步请求的方式返回更新了的数据项。
8.一种本地缓存的更新方法,其特征在于,其利用如权利要求1-7中任意一项所述的分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项。
9.如权利要求8所述的更新方法,其特征在于,当利用分布式缓存的更新方法中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
10.一种分布式缓存的更新系统,其特征在于,包括一建立模块、一判断模块和一插入并更新模块;
所述建立模块用于建立一分布式缓存,所述分布式缓存内存储有若干数据项和每一数据项的过期时长,每一数据项分别与一更新键对应;
所述判断模块用于根据所述数据项的内容和所述过期时长判断所述分布式缓存内是否存在无效数据项,并在判断结果为是时调用所述插入并更新模块;
所述插入并更新模块用于向存在无效数据项的所述分布式缓存的客户端节点串行插入所述无效数据项对应的更新键,并在其中一客户端节点的更新键插入成功时,从一数据源中获取所述无效数据项对应的最新数据项以更新所述分布式缓存中的所述无效数据项,并记录所述无效数据项的更新时刻。
11.如权利要求10所述的更新系统,其特征在于,所述数据项的内容包括数据键和所述数据键的键值,所述判断模块包括第一判断模块和第二判断模块;
所述第一判断模块用于判断所述数据键的键值是否不存在,若是,所述数据项则为无效数据项;若否,调用所述第二判断模块;
所述第二判断模块用于判断所述数据键的键值是否达到所述过期时长,若是,所述数据项则为无效数据项。
12.如权利要求11所述的更新系统,其特征在于,所述插入并更新模块用于在所述第一判断模块的判断结果为是时以同步请求的方式执行所述无效数据项的更新,在所述第二判断模块的判断结果为是时以异步请求的方式执行所述无效数据项的更新。
13.如权利要求10所述的更新系统,其特征在于,所述更新系统还包括第三判断模块,所述第三判断模块用于判断所述分布式缓存中的所述无效数据项的更新时长是否超过一时长阈值,若是,调用所述插入并更新模块。
14.一种本地缓存的更新系统,其特征在于,其利用如权利要求10-13中任意一项所述的分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项。
15.如权利要求14所述的更新系统,其特征在于,还包括一更新模块,所述更新模块用于在利用分布式缓存的更新系统中已更新的数据项更新本地缓存内对应的数据项失败时,通过从所述数据源中获取所述数据项对应的最新数据项的方式更新本地缓存内对应的数据项。
CN201610328064.3A 2016-05-17 2016-05-17 分布式缓存和本地缓存的更新方法和系统 Active CN106021468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610328064.3A CN106021468B (zh) 2016-05-17 2016-05-17 分布式缓存和本地缓存的更新方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610328064.3A CN106021468B (zh) 2016-05-17 2016-05-17 分布式缓存和本地缓存的更新方法和系统

Publications (2)

Publication Number Publication Date
CN106021468A true CN106021468A (zh) 2016-10-12
CN106021468B CN106021468B (zh) 2019-11-19

Family

ID=57097413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610328064.3A Active CN106021468B (zh) 2016-05-17 2016-05-17 分布式缓存和本地缓存的更新方法和系统

Country Status (1)

Country Link
CN (1) CN106021468B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330119A (zh) * 2017-07-14 2017-11-07 掌阅科技股份有限公司 缓存数据处理方法、电子设备、计算机存储介质
CN108182213A (zh) * 2017-12-20 2018-06-19 福建新大陆软件工程有限公司 一种基于分布式系统的数据处理优化装置及方法
CN108429777A (zh) * 2017-02-15 2018-08-21 腾讯科技(北京)有限公司 一种基于缓存的数据更新方法及服务器
CN109189797A (zh) * 2018-09-06 2019-01-11 北京奇艺世纪科技有限公司 一种数据更新方法及系统
CN109491928A (zh) * 2018-11-05 2019-03-19 深圳乐信软件技术有限公司 缓存控制方法、装置、终端及存储介质
CN110019259A (zh) * 2017-09-26 2019-07-16 亿阳信通股份有限公司 分布式索引服务引擎的数据更新方法、装置及存储介质
CN110321298A (zh) * 2019-06-21 2019-10-11 北京奇艺世纪科技有限公司 一种时间间隔确定方法、装置、电子设备及介质
WO2020118955A1 (zh) * 2018-12-13 2020-06-18 中山大学 分布式元数据管理一致性保证方法、装置、系统及应用
CN113486037A (zh) * 2021-07-27 2021-10-08 北京京东乾石科技有限公司 更新缓存数据的方法、管理器和缓存服务器
CN115913646A (zh) * 2022-10-21 2023-04-04 网易(杭州)网络有限公司 黑名单对象的拦截方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659548A (zh) * 2002-07-17 2005-08-24 欧里科国际公司 为移动应用缓存数据的系统和方法
CN102012907A (zh) * 2010-11-10 2011-04-13 上海光芒科技有限公司 一种浏览器客户端侧的缓存方法及系统
CN103338243A (zh) * 2013-06-20 2013-10-02 新浪网技术(中国)有限公司 Web节点的缓存数据更新方法和系统
CN103631869A (zh) * 2013-11-05 2014-03-12 北京奇虎科技有限公司 一种缓解服务端数据库访问压力的方法和装置
CN103886104A (zh) * 2014-04-11 2014-06-25 江苏瑞中数据股份有限公司 一种适用于电力系统的分布式实时数据库管理系统及实现方法
CN104657401A (zh) * 2014-10-21 2015-05-27 北京齐尔布莱特科技有限公司 一种web缓存的更新方法
CN105447167A (zh) * 2015-12-04 2016-03-30 北京奇虎科技有限公司 分布式系统中节点缓存数据的处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659548A (zh) * 2002-07-17 2005-08-24 欧里科国际公司 为移动应用缓存数据的系统和方法
CN102012907A (zh) * 2010-11-10 2011-04-13 上海光芒科技有限公司 一种浏览器客户端侧的缓存方法及系统
CN103338243A (zh) * 2013-06-20 2013-10-02 新浪网技术(中国)有限公司 Web节点的缓存数据更新方法和系统
CN103631869A (zh) * 2013-11-05 2014-03-12 北京奇虎科技有限公司 一种缓解服务端数据库访问压力的方法和装置
CN103886104A (zh) * 2014-04-11 2014-06-25 江苏瑞中数据股份有限公司 一种适用于电力系统的分布式实时数据库管理系统及实现方法
CN104657401A (zh) * 2014-10-21 2015-05-27 北京齐尔布莱特科技有限公司 一种web缓存的更新方法
CN105447167A (zh) * 2015-12-04 2016-03-30 北京奇虎科技有限公司 分布式系统中节点缓存数据的处理方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108429777B (zh) * 2017-02-15 2022-05-13 腾讯科技(北京)有限公司 一种基于缓存的数据更新方法及服务器
CN108429777A (zh) * 2017-02-15 2018-08-21 腾讯科技(北京)有限公司 一种基于缓存的数据更新方法及服务器
CN107330119A (zh) * 2017-07-14 2017-11-07 掌阅科技股份有限公司 缓存数据处理方法、电子设备、计算机存储介质
CN107330119B (zh) * 2017-07-14 2018-08-03 掌阅科技股份有限公司 缓存数据处理方法、电子设备、计算机存储介质
CN110019259A (zh) * 2017-09-26 2019-07-16 亿阳信通股份有限公司 分布式索引服务引擎的数据更新方法、装置及存储介质
CN110019259B (zh) * 2017-09-26 2023-09-22 亿阳信通股份有限公司 分布式索引服务引擎的数据更新方法、装置及存储介质
CN108182213A (zh) * 2017-12-20 2018-06-19 福建新大陆软件工程有限公司 一种基于分布式系统的数据处理优化装置及方法
CN109189797A (zh) * 2018-09-06 2019-01-11 北京奇艺世纪科技有限公司 一种数据更新方法及系统
CN109491928A (zh) * 2018-11-05 2019-03-19 深圳乐信软件技术有限公司 缓存控制方法、装置、终端及存储介质
WO2020118955A1 (zh) * 2018-12-13 2020-06-18 中山大学 分布式元数据管理一致性保证方法、装置、系统及应用
CN110321298A (zh) * 2019-06-21 2019-10-11 北京奇艺世纪科技有限公司 一种时间间隔确定方法、装置、电子设备及介质
CN113486037A (zh) * 2021-07-27 2021-10-08 北京京东乾石科技有限公司 更新缓存数据的方法、管理器和缓存服务器
CN113486037B (zh) * 2021-07-27 2024-07-16 北京京东乾石科技有限公司 更新缓存数据的方法、管理器和缓存服务器
CN115913646A (zh) * 2022-10-21 2023-04-04 网易(杭州)网络有限公司 黑名单对象的拦截方法、装置、电子设备和存储介质
CN115913646B (zh) * 2022-10-21 2024-06-04 网易(杭州)网络有限公司 黑名单对象的拦截方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN106021468B (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
CN106021468A (zh) 分布式缓存和本地缓存的更新方法和系统
CN108076098B (zh) 一种业务处理方法及系统
CN104935680B (zh) 一种多层级共享缓存的递归域名服务系统和方法
CN103812849B (zh) 一种本地缓存更新方法、系统、客户端及服务器
CN108121782B (zh) 查询请求的分配方法、数据库中间件系统以及电子设备
CN109753364A (zh) 一种基于网络的分布式锁的实现方法、设备及介质
US20080098041A1 (en) Server supporting a consistent client-side cache
CN104580226A (zh) 一种共享会话数据的系统和方法
CN102244685A (zh) 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN103581332B (zh) HDFS架构及HDFS架构中NameNode节点的压力分解方法
CN109815248B (zh) 一种基于Zookeeper的分布式架构数据一致性方法
US20090089313A1 (en) Decentralized record expiry
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
CN101901237A (zh) 一种基于SQlite构建的类型-索引-内容方式分布式数据库
US11615068B2 (en) Methods and systems of managing deletes in a database node of a NoSQL database
CN109933609A (zh) 一种批量生成id的方法及终端
CN110348826A (zh) 异地多活容灾方法、系统、设备及可读存储介质
US20090100436A1 (en) Partitioning system including a generic partitioning manager for partitioning resources
CN111291062A (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN107180082A (zh) 一种基于多级缓存机制的数据更新系统及方法
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
US8266634B2 (en) Resource assignment system with recovery notification
CN113760976A (zh) 业务的处理方法、装置、设备及存储介质
CN113268540B (zh) 一种数据同步的方法及装置
CN117520278A (zh) 一种分布式文件系统多客户端高精度目录配额控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant