CN115203250A - 一种高性能的分布式缓存的实现方法及系统 - Google Patents

一种高性能的分布式缓存的实现方法及系统 Download PDF

Info

Publication number
CN115203250A
CN115203250A CN202210540566.8A CN202210540566A CN115203250A CN 115203250 A CN115203250 A CN 115203250A CN 202210540566 A CN202210540566 A CN 202210540566A CN 115203250 A CN115203250 A CN 115203250A
Authority
CN
China
Prior art keywords
cache
target data
database
data
user
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
CN202210540566.8A
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.)
Guangdong Hotata Smart Home Co Ltd
Original Assignee
Guangdong Hotata Smart Home 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 Guangdong Hotata Smart Home Co Ltd filed Critical Guangdong Hotata Smart Home Co Ltd
Priority to CN202210540566.8A priority Critical patent/CN115203250A/zh
Publication of CN115203250A publication Critical patent/CN115203250A/zh
Pending legal-status Critical Current

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • 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

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)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种高性能的分布式缓存的实现方法及系统,所述方法包括:步骤S1、将用户针对目标数据的读请求发送至缓存;步骤S2、判断缓存中是否有目标数据;若是,即缓存命中,从缓存中直接读取目标数据;若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值X;若否,则进入步骤S3;若是,进入步骤S4;步骤S3、将读请求发送至数据库中,判断数据库中是否存对应的目标数据;若是,则从数据库中读取目标数据,并将读取的目标数据回填到缓存中;若否,则数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;步骤S4、将缓存中存储的对应空结果返回给用户。本发明有效的解决了缓存穿透问题。

Description

一种高性能的分布式缓存的实现方法及系统
技术领域
本发明涉及计算机技术领域,具体涉及一种高性能的分布式缓存的实现方法及系统。
背景技术
操作系统有很多存储区域,如硬盘,U盘,内存,缓存;它们的读取速度依次升高,在系统设计时,为了提高系统的运行效率,需要把常用的数据保存在读取速度高的地方,这就是缓存机制。
现有的缓存处理流程一般如下:前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。但这样的缓存处理流程经常造成缓存穿透、缓存击穿、缓存雪崩、缓存污染等问题。其中,缓存穿透即在缓存和数据库中都没有数据,而用户不断发起请求,这时的用户很可能是攻击者,这种恶意攻击会使得用户发送的恶意请求都打到数据库,导致数据库负载过大。
发明内容
鉴于以上技术问题,本发明的目的在于提供一种高性能的分布式缓存的实现方法,解决传统的缓存处理流程容易造成缓存穿透的问题。
本发明采用以下技术方案:
一种高性能的分布式缓存的实现方法,包括以下步骤:
步骤S1、将用户针对目标数据的读请求发送至缓存;
步骤S2、判断缓存中是否有目标数据;
若是,即缓存命中,从缓存中直接读取目标数据;
若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值X;若否,则进入步骤S3;若是,进入步骤S4;
步骤S3、将读请求发送至数据库中,判断数据库中是否存对应的目标数据;
若是,则从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
若否,则数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
步骤S4、将缓存中存储的对应空结果返回给用户。
可选的,步骤S3中,将所述读请求发送至数据库步骤之前还包括:
检测发送同一读请求的并发用户是否达到预设数量;
若是,则执行缓存击穿防止流程,具体为:
获取缓存单元的业务唯一主键,根据所述唯一主键获取互斥锁,将所述互斥锁随机发送至并发用户中的用户;
若所述数据库存在对应目标数据,则将所述目标数据返回至获取到互斥锁的用户,并将目标数据回填至缓存;然后将缓存中的对应目标数据发送给并发用户中的其他未获取到互斥锁的用户。
可选的,还包括缓存雪崩防止流程:按照预设时间维护缓存数据的更新和/或失效。
可选的,所述按照预设时间维护缓存数据的更新和/或失效,包括:定时增加数据至缓存和/或删除缓存中的数据。
可选的,所述按照预设时间维护缓存数据的更新和/或失效,包括:随机设置缓存中各数据的失效时间,或将缓存中的热点数据设置为永远不失效,或将热点数据分布在不同缓存中。
可选的,步骤S2中,若缓存命中,则从缓存中读取目标数据,包括:
所述缓存命中包括一级缓存命中或二级缓存命中;若一级缓存命中,则从一级缓存中读取数据;若一级缓存未命中,二级缓存命中,则从二级缓存中读取数据。
可选的,还包括缓存不一致防止流程:当接收到写请求时,先根据所述写请求对应的新数据更新数据库,若所述缓存中存储有所述写请求对应的旧数据,再删除缓存中存储的旧数据。
一种高性能的分布式缓存的实现系统,包括:
请求发送单元,用于将用户针对目标数据的读请求发送至缓存;
第一判定单元,用于判断缓存中是否有目标数据;若是,即缓存命中,从缓存中直接读取目标数据;若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值;
第二判定单元,用于在第一判定单元判定缓存未命中时,判定用户发送的同一读请求次数是否超过阈值;
第三判定单元,用于在第二判定单元在判定用户发送的同一读请求次数未超过阈值时,将读请求发送至数据库中,并判断数据库中是否存对应的目标数据;
回填单元,用于在第三判定单元判定数据库中存在对应的目标数据时,从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
存储单元,用于在第三判定单元判定数据库中不存在对应的目标数据时,从数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
返回单元,用于在第二判定单元判定用户发送的同一读请求次数超过阈值时,将缓存中存储的对应空结果返回给用户。一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求所述的高性能的分布式缓存的实现方法。
一种计算机存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时,实现所述的高性能的分布式缓存的实现方法。
相比现有技术,本发明的有益效果在于:
本发明通过在所述缓存和数据库都不存在目标数据,则返回空结果,并检测用户ID针对同一读请求(即针对同一目标数据提出读取请求)次数是否超过阈值X,若是,则将空结果存储至缓存,并设置所述空结果的过期时间,实现在用户针对同一目标数据不断发起读请求时,从缓存中读取空结果数据,使得数据库接收不到用户ID针对目标数据的大量读请求,可以避免一些用户在攻击服务器时,反复发送针对同一目标数据的读请求,造成数据库压力过大的问题,因此能够有效解决缓存穿透的问题。
进一步的,通过在所述数据库存在目标数据时,则将所述目标数据返回至获取到互斥锁的用户,并将目标数据回填至缓存,这样,缓存中将存在目标数据,其他用户可通过缓存获取目标数据,避免并发用户特别多,同时去数据库去取数据,引起数据库压力瞬间增大的问题;
进一步的,本发明通过所述按照预设时间维护缓存数据的更新和/或失效,例如,随机设置缓存中各数据的失效时间,或将缓存中的热点数据设置为永远不失效,或将热点数据分布在不同缓存中,这样,用户可以通过缓存查询数据,避免查询数据量巨大,引起数据库压力过大甚至down机的问题;
进一步的,本发明通过删除缓存中存储的旧数据,然后再下一次有读请求时,缓存中没有目标数据,直接读取数据库的数据后,回填数据,这样,可以使缓存的数据是最新的,可以避免不删除缓存,而更新缓存时,若存在一个以上的线程更新数据库时,而数据库上是某一个线程更新的新数据,而缓存上存储的数据却是另一个线程存储的旧数据,造成数据库数据与缓存数据不一致的问题;
进一步的,本发明通过若一级缓存命中,则从一级缓存中读取数据;若一级缓存未命中,二级缓存命中,则从二级缓存中读取数据,通过设置一级以上的缓存,可以提高缓存命中率,从而提高系统的处理速度。
附图说明
图1为本发明一实施例提供的一种高性能的分布式缓存的实现方法的流程示意图;
图2为本发明一实施例提供的一种从缓存中读取目标数据的流程示意图;
图3为本发明一实施例提供的一种高性能的分布式缓存的实现方法的流程示意图;
图4为本发明一实施例提供的一种缓存不一致防止流程的流程示意图;
图5为本发明一实施例提供的一种高性能的分布式缓存的实现系统的示意图;
图6为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例:
实施例一:
请参照图1-6所示,图1示出了本发明一种高性能的分布式缓存的实现方法的流程示意图,包括以下步骤:
步骤S1:将用户针对目标数据的读请求发送至缓存;
在本实施例中,用户针对目标数据的读请求可以是在用户终端上发送至缓存,以便由缓存为所述读请求提供服务。
需要说明的是,缓存的意义在于同一个应用中,对同一数据、逻辑功能和用户界面的多次请求时经常发生的,当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的不稳定。例如,web应用中,对一些静态页面的呈现内容进行缓存能有效的节省资源,提高稳定性。而缓存数据也能降低对数据库的访问次数,降低数据库的负担和提高数据库的服务能力。
缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。
缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机;和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。
步骤S2:判断缓存中是否有目标数据;若是,即缓存命中,从缓存中直接读取目标数据;
若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值X;若否,则进入步骤S3;若是,进入步骤S4;
在本实施例中,同一读请求次数是指用户针对同一目标数据请求的读取。
在具体实施时,阈值X可以根据系统性能,或用户需求等进行具体设置。例如,阈值X可以设置为1,当同一读请求次数超过1次时,进入步骤4。
需要说明的是,在具体实施时,判定的是规定时间段内用户针对同一目标数据发送的读请求次数是否超过阈值X,但是如果同一读请求的时间间隔已经相隔很久了(具体可以设置时间间隔请求),就不需要判定是否超过阈值了。
步骤S3、将读请求发送至数据库中,判断数据库中是否存对应的目标数据;
若是,则从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
若否,则数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
步骤S4、将缓存中存储的对应空结果返回给用户。在本实施例中,返回给用户的空结果为:数据库基于用户针对目标数据发送的读请求时,在不存在对应目标数据情况下回填到缓存中的空结果,即步骤S3中对应得到的空结果。
在本实施例中,缓存命中是指缓存存在目标数据的副本,可以由缓存为所述读请求提供服务。
具体的,请参照图2所示,图2示出了一种从缓存中读取目标数据的流程示意图,步骤S2中,若缓存命中,则从缓存中读取目标数据,具体包括:
所述缓存命中包括一级缓存命中或二级缓存命中;若一级缓存命中,则从一级缓存中读取数据;若一级缓存未命中,二级缓存命中,则从二级缓存中读取数据。
在本实施例中,若缓存存在多级缓存,例如,3级缓存,所述缓存命中可包括某一级缓存命中,从一级缓存依次读取下一级缓存,直到从某一级缓存中读取到目标数据。
需要说明的是,一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。
二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。
在本实施例中,缓存未命中是指到达缓存的读请求对应的目标数据在缓存上不存在副本,需要将读请求转发至数据库,以便由数据库为所述读请求提供服务。
具体的,若所述数据库存在目标数据,则从所述数据库中读取目标数据,并将读取的目标数据回填至缓存;
在上述实现过程中,本发明通过在所述缓存和数据库都不存在目标数据,则返回空结果,并检测用户ID针对同一读请求(即针对同一目标数据提出读取请求)次数是否超过阈值X,若是,则将空结果存储至缓存,并设置所述空结果的过期时间,实现在用户针对同一目标数据不断发起读请求时,从缓存中读取空结果数据,使得数据库接收不到用户ID针对目标数据的大量读请求,可以避免一些用户在攻击服务器时,反复发送针对同一目标数据的读请求,造成数据库压力过大的问题,因此能够有效解决缓存穿透的问题。
请参照图3所示,图3示出了本发明的一种高性能的分布式缓存的实现方法,可选的,步骤S3中,所述将所述读请求发送至数据库步骤之前还包括:
步骤S31:检测发送针对同一读请求的并发用户是否达到预设数量;
在本实施例中,所述预设数量可以根据系统的实际情况进行设定;
若是,则执行步骤S32:缓存击穿防止流程;
所述步骤S32具体包括:
步骤S321:获取缓存单元的业务唯一主键,根据所述唯一主键获取互斥锁,将所述互斥锁随机发送至并发用户中的用户;
在本实施例中,所述业务唯一主键为缓存单元的属性信息,通过该属性信息,可以得到互斥锁。
步骤S322:若所述数据库存在对应目标数据,则将所述目标数据返回至获取到互斥锁的用户,并将目标数据回填至缓存,然后将缓存中的对应目标数据发送给并发用户中的其他未获取到互斥锁的用户,以使其他用户ID通过缓存获取目标数据。
在本实施例中,所述互斥锁为分布式锁中的一种,当某一用户ID获取到互斥锁时,其他用户ID将不能再获取到互斥锁。
在上述实现过程中,在所述数据库存在目标数据时,则将所述目标数据返回至获取到互斥锁的用户ID,并将目标数据回填至缓存,这样,缓存中将存在目标数据,其他用户ID可通过缓存获取目标数据,避免并发用户特别多,同时去数据库去取数据,引起数据库压力瞬间增大的问题。
可选的,还包括步骤S5:缓存雪崩防止流程。
其中,所述步骤S5具体包括:
按照预设时间维护缓存数据的更新和/或失效。
具体的,所述按照预设时间维护缓存数据的更新和/或失效,包括:定时增加数据至缓存和/或删除缓存中的数据。
具体的,所述按照预设时间维护缓存数据的更新和/或失效,包括:随机设置缓存中各数据的失效时间,或将缓存中的热点数据设置为永远不失效,或将热点数据分布在不同缓存中。
可选的,还包括步骤S6:缓存不一致防止流程:请参照图4所示,图4示出了一种缓存不一致防止流程的流程示意图;
当接收到写请求时,先根据所述写请求对应的新数据更新数据库,若所述缓存中存储有所述写请求对应的旧数据,再删除缓存中存储的旧数据。
在本实施例中,新数据是指所述写请求将要写入的数据,所述旧数据是指原存储于缓存中的数据副本,所述新数据和旧数据可根据检测新鲜度来判定。
在上述实现过程中,通过删除缓存中存储的旧数据,然后再下一次有读请求时,缓存中没有目标数据,直接读取数据库的数据后,回填数据,这样,可以使缓存的数据是最新的,可以避免不删除缓存,而更新缓存时,若存在一个以上的线程更新数据库时,而数据库上是某一个线程更新的新数据,而缓存上存储的数据却是另一个线程存储的旧数据,造成数据库数据与缓存数据不一致的问题。
实施例二:
请参照图5所示,图5示出了本发明的一种高性能的分布式缓存的实现系统包括:
请求发送单元,用于将用户针对目标数据的读请求发送至缓存;
第一判定单元,用于判断缓存中是否有目标数据;若是,即缓存命中,从缓存中直接读取目标数据;若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值;
第二判定单元,用于在第一判定单元判定缓存未命中时,判定用户发送的同一读请求次数是否超过阈值;
第三判定单元,用于在第二判定单元在判定用户发送的同一读请求次数未超过阈值时,将读请求发送至数据库中,并判断数据库中是否存对应的目标数据;
回填单元,用于在第三判定单元判定数据库中存在对应的目标数据时,从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
存储单元,用于在第三判定单元判定数据库中不存在对应的目标数据时,从数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
返回单元,用于在第二判定单元判定用户发送的同一读请求次数超过阈值时,将缓存中存储的对应空结果返回给用户。
实施例三:
图6本申请实施例提供的一种电子设备的结构示意图,在本申请中可以通过图6所示的示意图来描述用于实现本申请实施例的本发明一种高性能的分布式缓存的实现方法的电子设备100。
如图6所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理器102、一个或多个存储装置104,这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。应当注意,图6所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备可以具有图6示出的部分组件,也可以具有图6未示出的其他组件和结构。
所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本申请实施例中(由处理器实现)的功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
本发明还提供一种计算机存储介质,其上存储有计算机程序,本发明的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在该计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机存储介质不包括电载波信号和电信信号。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

Claims (10)

1.一种高性能的分布式缓存的实现方法,其特征在于,包括以下步骤:
步骤S1、将用户针对目标数据的读请求发送至缓存;
步骤S2、判断缓存中是否有目标数据;
若是,即缓存命中,从缓存中直接读取目标数据;
若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值X;若否,则进入步骤S3;若是,进入步骤S4;
步骤S3、将读请求发送至数据库中,判断数据库中是否存对应的目标数据;
若是,则从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
若否,则数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
步骤S4、将缓存中存储的对应空结果返回给用户。
2.根据权利要求1所述的高性能的分布式缓存的实现方法,其特征在于,步骤S3中,将所述读请求发送至数据库步骤之前还包括:
检测发送同一读请求的并发用户是否达到预设数量;
若是,则执行缓存击穿防止流程,具体为:
获取缓存单元的业务唯一主键,根据所述唯一主键获取互斥锁,将所述互斥锁随机发送至并发用户中的用户;
若所述数据库存在对应目标数据,则将所述目标数据返回至获取到互斥锁的用户,并将目标数据回填至缓存;然后将缓存中的对应目标数据发送给并发用户中的其他未获取到互斥锁的用户。
3.根据权利要求1所述的高性能的分布式缓存的实现方法,其特征在于,还包括缓存雪崩防止流程:按照预设时间维护缓存数据的更新和/或失效。
4.根据权利要求3所述的高性能的分布式缓存的实现方法,其特征在于,所述按照预设时间维护缓存数据的更新和/或失效,包括:定时增加数据至缓存和/或删除缓存中的数据。
5.根据权利要求3所述的高性能的分布式缓存的实现方法,其特征在于,所述按照预设时间维护缓存数据的更新和/或失效,包括:随机设置缓存中各数据的失效时间,或将缓存中的热点数据设置为永远不失效,或将热点数据分布在不同缓存中。
6.根据权利要求1所述的高性能的分布式缓存的实现方法,其特征在于,步骤S2中,若缓存命中,则从缓存中读取目标数据,包括:
所述缓存命中包括一级缓存命中或二级缓存命中;若一级缓存命中,则从一级缓存中读取数据;若一级缓存未命中,二级缓存命中,则从二级缓存中读取数据。
7.根据权利要求1所述的高性能的分布式缓存的实现方法,其特征在于,还包括缓存不一致防止流程:当接收到写请求时,先根据所述写请求对应的新数据更新数据库,若所述缓存中存储有所述写请求对应的旧数据,再删除缓存中存储的旧数据。
8.一种高性能的分布式缓存的实现系统,其特征在于,包括:
请求发送单元,用于将用户针对目标数据的读请求发送至缓存;
第一判定单元,用于判断缓存中是否有目标数据;若是,即缓存命中,从缓存中直接读取目标数据;若否,即缓存未命中,则判定用户发送的同一读请求次数是否超过阈值;
第二判定单元,用于在第一判定单元判定缓存未命中时,判定用户发送的同一读请求次数是否超过阈值;
第三判定单元,用于在第二判定单元在判定用户发送的同一读请求次数未超过阈值时,将读请求发送至数据库中,并判断数据库中是否存对应的目标数据;
回填单元,用于在第三判定单元判定数据库中存在对应的目标数据时,从数据库中读取目标数据,并将读取的目标数据回填到缓存中;
存储单元,用于在第三判定单元判定数据库中不存在对应的目标数据时,从数据库返回对应空结果至缓存中存储,并为空结果设置过期时间;其中,当空结果在缓存中存储时间超过过期时间时,从缓存中自动清除;
返回单元,用于在第二判定单元判定用户发送的同一读请求次数超过阈值时,将缓存中存储的对应空结果返回给用户。
9.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的高性能的分布式缓存的实现方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时,实现权利要求1-7任一项所述的高性能的分布式缓存的实现方法。
CN202210540566.8A 2022-05-17 2022-05-17 一种高性能的分布式缓存的实现方法及系统 Pending CN115203250A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210540566.8A CN115203250A (zh) 2022-05-17 2022-05-17 一种高性能的分布式缓存的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210540566.8A CN115203250A (zh) 2022-05-17 2022-05-17 一种高性能的分布式缓存的实现方法及系统

Publications (1)

Publication Number Publication Date
CN115203250A true CN115203250A (zh) 2022-10-18

Family

ID=83574423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210540566.8A Pending CN115203250A (zh) 2022-05-17 2022-05-17 一种高性能的分布式缓存的实现方法及系统

Country Status (1)

Country Link
CN (1) CN115203250A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573572A (zh) * 2024-01-12 2024-02-20 北京开源芯片研究院 重填数据的处理方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573572A (zh) * 2024-01-12 2024-02-20 北京开源芯片研究院 重填数据的处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10176057B2 (en) Multi-lock caches
TWI536184B (zh) Application Method and System of Statistical Table Based on OLTP Environment
US7673108B2 (en) Methods and systems for distributed caching in presence of updates and in accordance with holding times
US20040111422A1 (en) Concurrency classes for shared file systems
US9229869B1 (en) Multi-lock caches
CN100461136C (zh) 多处理器系统中维持数据一致性的方法和系统
US20150142845A1 (en) Smart database caching
CN105426321A (zh) 采用远程位置信息的rdma友好缓存方法
US9928174B1 (en) Consistent caching
CN115203250A (zh) 一种高性能的分布式缓存的实现方法及系统
CN117130792B (zh) 缓存对象的处理方法、装置、设备及存储介质
US9317432B2 (en) Methods and systems for consistently replicating data
US11269784B1 (en) System and methods for efficient caching in a distributed environment
CN117033831A (zh) 一种客户端缓存方法、装置及其介质
CN110109956B (zh) 一种防止缓存穿透的方法及终端
JP2000137689A (ja) 共用データキャッシュ処理方法及びその実施装置並びにその処理プログラムを記録した媒体
CN113779052A (zh) 数据更新方法、装置、设备及存储介质
CN113849119A (zh) 存储方法、存储装置和计算机可读存储介质
CN115408431A (zh) 数据访问方法、装置、电子设备和存储介质
CN112650694A (zh) 一种数据读取方法、装置、缓存代理服务器及存储介质
CN111737298B (zh) 基于分布式存储的缓存数据管控方法及装置
US11463535B1 (en) Using forensic trails to mitigate effects of a poisoned cache
CN117914944A (zh) 一种基于物联网的分布式三级缓存方法及装置
EP3984200B1 (en) Clustered coherent cloud read cache without coherency messaging
CN114205368B (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