CN113641711B - 一种针对saas租户的数据缓存处理方法、装置及介质 - Google Patents
一种针对saas租户的数据缓存处理方法、装置及介质 Download PDFInfo
- Publication number
- CN113641711B CN113641711B CN202110940240.XA CN202110940240A CN113641711B CN 113641711 B CN113641711 B CN 113641711B CN 202110940240 A CN202110940240 A CN 202110940240A CN 113641711 B CN113641711 B CN 113641711B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- cache
- service data
- cache area
- 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
Links
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 title claims abstract description 42
- 102100036366 ProSAAS Human genes 0.000 title claims abstract description 42
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 239000000872 buffer Substances 0.000 claims abstract description 98
- 238000004458 analytical method Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 36
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种针对SAAS租户的数据缓存处理方法、装置及介质,包括:根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;查找所述第一缓存区域中所述关键数据的缓存状态;当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;查找所述第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;当所述第二缓存区域中未缓存所述业务数据标识时,存储所述业务数据标识到所述第二缓存区域中。可以解决进行多租户业务数据缓存时性能不高的问题。
Description
技术领域
本申请涉及计算机应用技术领域,具体涉及一种针对SAAS租户的数据缓存处理方法、装置及介质。
背景技术
在应用***的开发中,通常数据库是一个基本的关键服务。但是对于数据库的请求也是一个负担较大的操作,通常会变为***性能的瓶颈。为了减少数据库的访问请求,一些大型的Web应用中,都会使用redis、memcache等内存数据库,作为实际数据库的缓存层,减少对后台数据库的访问。
在SaaS应用***中,会区分为多个租户,每个租户内部又会分为多种不同权限类型的用户。同一个租户内的用户存在权限控制,不同租户之间,一般不能相互访问。因此,如何控制好缓存的使用,即需要避免权限控制失效,又需要尽量使用好缓存数据,是一种比较复杂的问题。
对于缓存数据,一般是在内存中保存一个Key和对应的值Value。相应的增删改查操作对于缓存数据有不同的处理方法。通常可以区分为两种类型:
一类是缓存单条记录,即一个Key对应一条记录。这类记录的缓存操作,对于增加记录,会新添加该缓存记录;对于查询操作如果缓存没有记录则会添加缓存数据,如果缓存有记录,只是使用缓存数据;对于修改操作,会更新缓存记录;对于删除记录,在缓存中也会删除该记录。由于单条记录的缓存操作,比较成熟,这里不进行讨论。
另外一类是缓存集合数据,即一个Key对应多条记录,比如获得某个租户下的用户列表、或者某类商品信息,都是通过一个Key缓存多个记录的集合。通常在这类请求操作中获得集合数据一般都是查询操作,把该查询结果保存到缓存中,可以明显提高查询性能。此外为了防止一次请求数据量过大,通常还需要增加分页的操作。但是这时增加、修改、删除集合中的某一条记录,都会导致集合数据变化,缓存失效。尤其是对于集合的分页操作,一条记录的变化,可能会导致所有页的缓存数据失效,但是如果只是简单的清除集合缓存,又会导致缓存的效果不佳。
所以,对于上面提到的集合缓存,如何提高集合缓存的效果,同时又能够保证多租户的权限控制,这是目前缓存处理中的一个难题。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种针对SAAS租户的数据缓存处理方法、装置及介质,可以解决进行多租户业务数据缓存时性能不高的问题。
根据本申请的一个方面,提供了一种针对SAAS租户的数据缓存处理方法,包括:根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;查找第一缓存区域中所述关键数据的缓存状态;当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;查找第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;当所述第二缓存区域中未缓存所述业务数据标识时,存储所述业务数据标识到所述第二缓存区域中。
在一实施例中,所述根据访问请求,生成关键数据包括:根据访问请求,确定业务数据的类型以及租户信息;根据所述业务数据的类型,确定所述第一缓存区域中对应的存储空间;根据所述访问请求、所述第一缓存区域中对应的存储空间以及租户信息,生成关键数据。
在一实施例中,所述当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中包括:当所述第一缓存区域中未缓存所述关键数据时,在租户业务区域中进行查询;其中,所述租户业务区域中通过关键数据,可以获得每个关键数据对应的查询值;存储所述关键数据和所述关键数据的查询值到所述第一缓存区域中;其中,所述关键数据和所述查询值形成所述第一缓存区域中的键值对。
在一实施例中,在所述查找所述第二缓存区域中业务数据标识的缓存状态之前,所述针对SAAS租户的数据缓存处理方法还包括:解析所述关键数据的查询值,获得所述查询值对应的业务数据标识。
在一实施例中,所述当所述第二缓存区域中未缓存所述业务数据标识时,存储所述业务数据标识到所述第二缓存区域中包括:当所述第二缓存区域中未缓存所述业务数据标识时,将所述业务数据标识对应的关键数据转换为关键值清单;其中,所述业务数据标识和所述关键值清单形成所述第二缓存区域中的键值对;存储所述业务数据标识以及所述关键值清单到所述第二缓存区域中。
在一实施例中,在查找所述第二缓存区域中所述业务数据标识的缓存状态之后,所述针对SAAS租户的数据缓存处理方法还包括:当所述第二缓存区域中缓存所述业务数据标识时,查询所述业务数据标识对应的关键值清单中所述关键数据的存在状态;其中,所述第二缓存区域中预先缓存多个业务数据标识和多个业务数据标识分别对应的关键值清单,所述关键值清单中包括多个关键数据;当所述存在状态表示所述关键值清单中不包括所述关键数据时,将所述关键数据添加到所述关键值清单中;存储所述添加关键数据之后的关键值清单和所述业务数据标识到所述第二缓存区域中。
在一实施例中,所述针对SAAS租户的数据缓存处理方法还包括:根据修改指令,确定将被修改的业务数据标识;在所述第二缓存区域中查找所述将被修改的业务数据标识对应的关键值清单;当所述第二缓存区域中存在所述将被修改的业务数据标识对应的关键值清单时,删除所述第二缓存区域中的所述关键值清单;删除所述第一缓存区域中所述关键值清单中对应的关键数据。
在一实施例中,所述针对SAAS租户的数据缓存处理方法还包括:根据删除指令,确定将被删除的关键数据以及将被删除的业务数据标识;在所述第一缓存区域中删除所述将被删除的关键数据以及所述将被删除的关键数据对应的查询值;在所述第二缓存区域中删除所述将被删除的业务数据标识以及所述将被删除的业务数据标识对应的关键值清单。
根据本申请的另一个方面,提供了一种针对SAAS租户的数据缓存处理装置,包括:生成模块,用于根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;第一查找模块,用于查找所述第一缓存区域中所述关键数据的缓存状态;第一存储模块,用于当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;第二查找模块,用于查找所述第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;第二存储模块,用于当所述第二缓存区域中未缓存所述业务数据标识时,存储所述业务数据标识到所述第二缓存区域中。
根据本申请的另一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的针对SAAS租户的数据缓存处理方法。
本申请提供的针对SAAS租户的数据缓存处理方法、装置及介质,采用两个模块分别缓存业务数据,第二缓存区域可以记录单条业务关键标识数据影响的集合缓存范围,能够减少对集合缓存的影响,在第二缓存区域中可以通过业务数据标识定位具体的关键数据,后续只需要对关键数据进行更新就可以改变第一缓存区域和第二缓存区域中的缓存数据,避免缓存失效范围过大,这样可以提高***的性能,解决多租户业务数据缓存时性能不高的问题。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本申请一示例性实施例提供的针对SAAS租户的数据缓存处理***的结构示意图。
图2是本申请一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图。
图3是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图。
图4是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图。
图5是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图。
图6是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图。
图7是本申请一示例性实施例提供的修改缓存数据的方法的流程示意图。
图8是本申请一示例性实施例提供的删除缓存数据的方法的流程示意图。
图9是本申请一示例性实施例提供的查询缓存数据的方法的流程示意图。
图10是本申请另一示例性实施例提供的修改缓存数据的方法的流程示意图。
图11是本申请一示例性实施例提供的新增或删除缓存数据的方法的流程示意图。
图12是本申请一示例性实施例提供的缓存数据处理的装置的结构示意图。
图13是本申请另一示例性实施例提供的缓存数据处理的装置的结构示意图。
图14是本申请一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
示例性***
图1是本申请一示例性实施例提供的针对SAAS租户的数据缓存处理***的结构示意图,如图1所示,本申请可以应用于一种针对SAAS租户的数据缓存处理***2,针对SAAS租户的数据缓存处理***2包括:上层客户端21、租户业务器23、第一缓存器24、第二缓存器25和缓存访问器22;其中,上层客户端21与缓存访问器22连接,缓存访问器22与租户业务器23连接,第一缓存器24与缓存访问器22连接,第二缓存器25与第一缓存器24连接。
租户业务器23,用于存储多个租户信息、每个租户信息下对应的多条业务数据、每条业务数据的类型以及每条业务数据的业务数据标识;租户业务器23还可以用于执行实际业务操作,实际业务操作包括增加业务数据、删除业务数据、查询业务数据和修改业务数据。
租户业务器23基于Saas服务模型,每个租户都有一个ID,这里取名为SaasId。每个租户下面有相关业务数据,比如用户信息数据和商品数据都是不同的业务数据。每条业务数据的记录有自己的ID,这里取名为bizId。
第一缓存器24,第一缓存器24中包括第一缓存区域,第一缓存区域中可以划分多个存储空间,每个存储空间用于缓存不同类型的业务数据,第一缓存器24中缓存的数据包括关键数据和查询值。
第一缓存器24中对于每类的业务数据对应一个CacheName,用于存放该业务类型的缓存。CacheName相当于一种业务数据的缓存空间,这样不同业务数据的集合可以互不影响,相互隔离。在CacheName下,具体缓存数据以Key-Value的形式,即缓存一个Key对应的相关数据Value。Key值即是关键数据,设计格式一般为:SaasId-PageNo-ReqStr,这里取名为reqKey,其中,SaasId为租户的信息,比如租户ID,这样不同租户的ID前缀是不同的。PageNo页码,页码为指定请求中的页码号。ReqStr为请求参数,请求参数为某个操作的输入参数转换的字符串。这里每页包含的记录数目为一个固定的默认值。
第二缓存器25,第二缓存器25与第一缓存器24连接,第二缓存器25中包括第二缓存区域,第二缓存区域中可以划分多个存储空间,每个存储空间用于缓存不同类型的业务数据。第二缓存区域中依据业务数据类型划分的存储空间,与第一缓存区域中依据业务数据类型划分的存储空间相对应。第二缓存器25中缓存的数据包括业务数据标识和关键值清单;其中,关键值清单包括第一缓存器24中的多个关键数据。
第二缓存器25,这是本申请中的第二个缓存器。同样对于每类的业务数据对应同样一个CacheName。在该CacheName下,缓存中的Key值格式为:SaasId-bizId,对应的Value值这里取名为KeyList。KeyList记录了bizId在上述第一缓存器24中的有那些reqKey指定的Value值中包含了该bizId记录的数据,即这里的KeyList值是第一缓存器24中某些reqKey的名称列表,列表中每个reqKey值在第一缓存器24中对应的Value中都包含了该bizId的记录。
缓存访问器22,缓存访问器22与租户业务器23和第一缓存器24连接,缓存访问器22用于获取指令,根据指令调用租户业务器23或第一缓存器24。缓存访问器22对每类业务数据支持4类请求操作,为:单条记录的增、删、改操作,以及对于集合的查询操作。比如增加一个用户,删除一个用户,修改一个用户为单条记录操作;如查询所有用户列表,查询某一类用户类别,或者查询某个时间点之后创建的用户都属于集合查询操作。此外还有具体的查询参数,用ReqStr表示。
缓存访问器22即是对缓存进行增删改查的请求操作,其中查询请求是一次返回多条记录的集合数据,而增、删、改操作都是一次只能针对一条bizId记录的操作。
所有相关操作都是某个登录用户发出,该登录用户属于某个租户,也就可以获得某个操作的租户ID,即SaasId。
示例性方法
图2是本申请一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图,如图2所示,该针对SAAS租户的数据缓存处理方法包括:
步骤110:根据访问请求,生成关键数据。
其中,访问请求包括请求访问的业务数据。
上层客户端发出查询请求,缓存访问器接收到访问请求后,根据业务数据的类型,确定第一缓存器中的CacheName的值,然后根据租户ID、查询页码、查询参数一起组合为reqKey值。对于不同的查询请求,即使SaasId和页码相同,但是请求参数不同,结果Value也是不同的,所以不同请求的reqKey值也会不同的。
步骤120:查找第一缓存区域中关键数据的缓存状态。
在第一缓存区域中查找关键数据是否已经被缓存过,如果已经被缓存过,则不需要具体进行实际查询操作,直接从缓存中获得对应的Value,并以该Value值作为返回结果。
步骤130:当第一缓存区域中未缓存关键数据时,存储关键数据到第一缓存区域中。
如果第一缓存区域中并未缓存过关键数据,则将关键数据和关键数据对应的Value值形成的键值对保存在第一缓存区域中。
步骤140:查找第二缓存区域中业务数据标识的缓存状态。
其中,业务数据标识根据关键数据的查询值Value解析获得。
查找完第一缓存区域中的关键数据缓存状态后,在第二缓存区域中查找关键数据是否已经以对应的业务数据标识进行存储。
步骤150:当第二缓存区域中未缓存业务数据标识时,存储业务数据标识到第二缓存区域中。
在第二缓存区域中查找到关键数据没有以第二缓存区域中的存储形式时,那么将关键数据的查询值解析出第二缓存区域能够识别的业务数据标识,并将业务数据标识和相关关键数据集合存储到第二缓存区域中。
本申请提供的针对SAAS租户的数据缓存处理方法,采用两个模块分别缓存业务数据,第二缓存区域可以记录单条业务数据标识影响的集合缓存范围,能够减少对集合缓存的影响,在第二缓存区域中可以通过业务数据标识定位具体的关键数据,后续只需要对关键数据进行更新就可以改变第一缓存区域和第二缓存区域中的缓存数据,避免缓存失效范围过大,这样可以提高***的性能,解决多租户业务数据缓存时性能不高的问题。
图3是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图,如图3所示,上述步骤110可以包括:
步骤111:根据访问请求,确定业务数据的类型以及租户信息。
第一缓存区域中存在多个CacheName(存储空间),每个存储空间存储不同类型的业务数据,对不同业务数据采用CacheName(存储空间)进行隔离,这样不同业务缓存互不影响,比如缓存用户的数据和缓存商品的数据不会相互影响。每个业务数据都有租户信息作为前缀,当接收到访问请求时,可以识别出发出访问请求的租户信息,例如,采用SaasId作为每个关键数据的前缀,可以保证不同的租户之间的缓存互不影响,通过关键数据的前缀能够区分缓存数据所针对的租户。
步骤112:根据业务数据的类型,确定第一缓存区域中对应的存储空间。
根据业务数据的类型,确定该业务数据在第一缓存区域中对应的CacheName(存储空间),要对该业务数据进行操作,需要在对应的CacheName(存储空间)里对其进行操作。
步骤113:根据访问请求、第一缓存区域中对应的存储空间以及租户信息,生成关键数据。
根据租户的访问请求生成请求参数,请求参数为某个操作的输入参数转换的字符串,关键数据还可以包括页码,关键数据的设计格式可以为:SaasId-页码-请求参数,关键数据可以取名为reqKey,SaasId为租户信息,可以视为租户的ID,这样不同租户的ID前缀是不同的,页码为访问请求中的页码号,这里每页包含的记录数据为一个固定的默认值,也就是说每一页包含的业务数据记录为一个固定的默认值,通过页码可以查询到对应的存储空间。因此,关键数据根据访问请求、第一缓存区域中对应的存储空间以及租户信息可以生成。
图4是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图,如图4所示,上述步骤130可以包括:
步骤131:当第一缓存区域中未缓存关键数据时,在租户业务区域中进行查询。
其中,租户业务区域中通过关键数据,可以获得每个关键数据对应的查询值。
租户业务区域一般为具体的数据库操作,在租户业务区域可以通过关键数据,可以获得每个关键数据对应的查询值。
如果第一缓存区域中不存在上述的reqKey(关键数据)时,需要通过租户业务器在租户业务区域中进行具体的查询操作,获得查询结果。例如,在租户业务区域中输入reqKey(关键数据)可以获得Value(查询值)。
步骤132:存储关键数据和关键数据的查询值到第一缓存区域中。
其中,关键数据和查询值形成第一缓存区域中的键值对。
第一缓存区域中保存关键数据和通过关键数据查询到的Value(查询值)键值对,并将该Value(查询值)返回给缓存访问器。
在一实施例中,在上述步骤140之前,上述针对SAAS租户的数据缓存处理方法可以包括:解析关键数据的查询值,获得查询值对应的业务数据标识。
第一缓存器可以调用第二缓存器,并上传上述reqKey(关键数据)和Value(查询值),第一缓存器中可以查询到多条关键数据和多个对应的查询值,第二缓存器分析第一缓存器中上传的查询值集合,获得每个单条记录的业务数据标识,也就是bizId,第二缓存器对每一个bizId(业务数据标识)进行遍历。
图5是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图,如图5所示,上述步骤150可以包括:
步骤151:当第二缓存区域中未缓存业务数据标识时,将业务数据标识对应的关键数据转换为关键值清单。
其中,业务数据标识和关键值清单形成第二缓存区域中的键值对。
第二缓存区域中的关键数据的存储形式为SaasId-bizId,也就是租户信息(租户ID)-业务数据标识,通过bizId(业务数据标识)在第二缓存区域中查找对应的SaasId-bizId,也就是查找对应租户信息的bizId(业务数据标识)。如果第二缓存区域中不存在该bizId对应的SaasId-bizId时,则将reqKey(关键数据)转换为Keylist(关键值清单),在第二缓存区域的Key-Value键值对中,将SaasId-bizId作为Key,Keylist(关键值清单)作为Value。
步骤152:存储业务数据标识以及关键值清单到第二缓存区域中。
第二缓存区域中保存SaasId-bizId和Keylist(关键值清单)键值对。
图6是本申请另一示例性实施例提供的针对SAAS租户的数据缓存处理方法的流程示意图,如图6所示,在上述步骤140之后,上述针对SAAS租户的数据缓存处理方法还可以包括:
步骤170:当第二缓存区域中缓存业务数据标识时,查询业务数据标识对应的关键值清单中关键数据的存在状态。
其中,第二缓存区域中预先缓存多个业务数据标识和多个业务数据标识分别对应的关键值清单,关键值清单中包括多个关键数据。
当第二缓存区域中存在SaasId-bizId,查询已经存在的SaasId-bizId对应的Keylist(关键值清单),如果该Keylist(关键值清单)中包含reqKey(关键数据),则不对已存在的缓存数据做任何变动。
步骤180:当存在状态表示关键值清单中不包括关键数据时,将关键数据添加到关键值清单中。
如果Keylist(关键值清单)中不包含reqKey(关键数据),则把reqKey(关键数据)以逗号分隔形式添加到Keylist(关键值清单)的末尾。
步骤190:存储添加关键数据之后的关键值清单和业务数据标识到第二缓存区域中。
在第二缓存区域中更新保存SaasId-bizId和新的Keylist(关键值清单)键值对。
图7是本申请另一示例性实施例提供的修改缓存数据的方法的流程示意图,如图7所示,修改数据缓存的方法可以包括:
步骤210:根据修改指令,确定将被修改的业务数据标识。
缓存访问器获得上层客户端的修改指令(修改一条业务数据记录)后,首先调用租户业务器,对于bizId(业务数据标识)的业务数据进行修改,然后返回修改结果。并且可以根据修改指令确定CacheName(存储空间),并将CacheName(存储空间)、SaasId(租户ID)、bizId(业务数据标识)和Value发送到第一缓存器中。
步骤220:在第二缓存区域中查找将被修改的业务数据标识对应的关键值清单。
第一缓存器调用第二缓存器,并发送CacheName(存储空间)、SaasId(租户ID)和bizId(业务数据标识)到第二缓存区域中,第二缓存器在第二缓存区域中对应的CacheName(存储空间)下,查找SaasId-bizId对应的Keylist(关键值清单)是否存在。
步骤230:当第二缓存区域中存在将被修改的业务数据标识对应的关键值清单时,删除第二缓存区域中的关键值清单。
如果第二缓存区域中存在对应的Keylist(关键值清单)时,删除第二缓存区域中的Keylist(关键值清单)。
步骤240:删除第一缓存区域中关键值清单中对应的关键数据。
除了删除第二缓存区域中的Keylist(关键值清单)外,还需要在第一缓存区域中删除Keylist(关键值清单)中指定的reqKey(关键数据),以达到将所有相关缓存数据删除的目的,可以减少缓存占用空间,并且可以针对性的删除被修改的数据,而不影响其他数据。
图8是本申请另一示例性实施例提供的删除缓存数据的方法的流程示意图,如图8所示,删除缓存数据的方法可以包括:
步骤320:根据删除指令,确定将被删除的关键数据以及将被删除的业务数据标识。
对于实际业务中新增一条业务数据记录或是删除一条业务数据记录时,都会触发一定范围的缓存失效。所以首先调用租户业务器,执行新增和删除的具体业务操作,然后都触发缓存的删除指令,通过新增或删除的业务数据记录确定将被删除的关键数据以及将被删除的业务数据标识。根据删除指令可以获取业务数据的类型,并且得到业务数据类型对应的CacheName(存储空间)和SaasId(租户ID)。
步骤330:在第一缓存区域中删除将被删除的关键数据以及将被删除的关键数据对应的查询值。
在第一缓存区域中对应的CacheName(存储空间)里,通过前缀SaasId(租户ID)确定将被删除的关键数据信息,这样删除所有前缀为SaasId(租户ID)的reqKey(关键数据)和Value(查询值)键值对。
步骤340:在第二缓存区域中删除将被删除的业务数据标识以及将被删除的业务数据标识对应的关键值清单。
在第二缓存区域中对应的CacheName(存储空间)里,通过前缀SaasId(租户ID)确定将被删除的关键数据,这样删除所有前缀为SaasId(租户ID)的业务数据标识和关键值清单键值对。
本申请提供的SAAS租户的数据缓存处理方法具有以下特点:1、对于不同业务数据采用CacheName(存储空间)进行隔离,这样不同业务缓存互不影响。比如缓存用户的数据和缓存商品的数据不会相关影响。2、采用SaasId(租户ID)作为每个Key的前缀,保证不同租户的缓存互不影响。通过Key前缀能够区分缓存数据所针对的租户。3、采用第二缓存器记录单条记录所影响的集合缓存范围,能够减小对集合缓存的影响。这样对于修改操作,可以通过第二缓存器生成的KeyList定位具体reqKey(关键数据),后续只更新相关的reqKey(关键数据)即可。对于新增和删除操作,虽然无法定位具体影响的reqKey(关键数据),但是通过CacheName(存储空间)和SaasId(租户ID)前缀也一定程度缩小所影响的影响集合范围。最终达到了最大程度的利用***中的业务缓存数据,充分提高***的性能。
图9是本申请一示例性实施例提供的查询缓存数据的方法的流程示意图,如图9所示,查询请求数据的方法包括:
缓存访问器获得上层客户端的查询请求(步骤30)后,依据业务数据类型对应一个CacheName(存储空间),这样不同业务数据操作在不同的业务CacheName(存储空间),CacheName(存储空间)类似数据库的某个Table的概念。同时基于SaasId(租户ID),请求的页码和ReqStr(请求参数),生成reqKey(关键数据)值(步骤31),格式为SaasId-PageNo-ReqStr。然后发出查询请求到第一缓存器中。
判断第一缓存器中查找上述reqKey值在缓存中是否存在(步骤33)。
如果存在上述reqKey,直接从该缓存中获得对应的Value(步骤34),并以该Value值返回给缓存访问器。之后缓存访问器,传递给上层客户端应用,本次请求结束。
如果不存在上述reqKey值,第一缓存器传递请求到租户业务器,进行具体的查询操作,获得查询结果Value值(步骤35)。
第一缓存器调用第二缓存器(步骤36),并传递上述reqKey和Value值。第二缓存器分析Value的值,获得每个单条记录的ID,即bizId。然后对Value中每个bizId,进行遍历(步骤37)。
查找每个SaasId-bizId作为Key在第二缓存器中是否存在(步骤38)。若SaasId-bizId不存在,则令KeyList等于reqKey(步骤43),然后保存SaasId-bizId和KeyList键值对(步骤42),并遍历下一个bizId。若SaasId-bizId存在,先获得原始SaasId-bizId对应的KeyList(步骤39)。
判断KeyList中是否包含reqKey(步骤40)。如果KeyList中包含reqKey,则不作任何操作遍历下一个bizId。如果KeyList中不包含reqKey,则把reqKey以逗号分隔添加到KeyList末尾(步骤41),然后更新保存SaasId-bizId和新的KeyList键值对(步骤42),并遍历下一个bizId。
遍历完成bizId后,遍历结束(步骤44),第二缓冲器调用结束。
第一缓存器在调用第二缓存器完成后,自身保存该reqKey和查询结果的Value键值对(步骤45),并以该Value值返回给缓存访问器。之后缓存访问器,传递给上层客户端,本次请求结束。
图10是本申请另一示例性实施例提供的修改缓存数据的方法的流程示意图,如图10所示,上层客户端发出修改请求后,缓存访问器获得修改请求(步骤51),首先调用租户业务器执行修改请求(步骤52),租户业务器对bizId的业务数据进行具体修改操作,并返回修改结果Value。其次依据业务数据类型获得CacheName,传递CacheName、SaasId、bizId和Value值到第一缓存器中(步骤53),调用第一缓存器(步骤54)。
第一缓存器调用第二缓存器(步骤55),并传递CacheName、SaasId和bizId参数。
第二缓存器中,在CacheName空间下,查找SaasId-bizId为Key值的缓存是否存在(步骤56)。如果上述SaasId-bizId不存在,第二缓存器和第一缓存器调用结束,缓存访问器返回修改结果Value给上层客户端,本次请求结束。如果上述SaasId-bizId存在,获得对应的KeyList(步骤57)。之后在缓存中删除SaasId-bizId对应的键值对,并把KeyList返回给第一缓存器(步骤58)。
第一缓存器依据KeyList,以逗号分隔解析,获得每个具体reqKey。遍历每个reqKey值(步骤59),并在缓存中删除reqKey所对应的键值对(步骤60),遍历结束(步骤61)后,第一缓存器操作完成(步骤62)并反馈给缓存访问器,缓存访问器待第一缓存器操作完成后,把Value值传递给上层客户端应用,本次请求结束。
图11是本申请一示例性实施例提供的删除缓存数据的方法的流程示意图,如图11所示,缓存访问器获得上层客户端新增或者删除一条记录的请求(步骤70)后,首先调用租户业务器,租户业务器执行新增请求或者删除请求(步骤71),然后将触发下面的缓存区删除指令。
依据业务数据的类型,获得指定的CacheName(步骤72),在第一缓存器中删除CacheName空间下所有前缀为SaasId的缓存,也就是reqKey-Value键值对(步骤73)。在第二缓存器中删除CacheName空间下所有前缀为SaasId的SaasId-bizId-KeyList键值对(步骤74),第一缓存器操作完成(步骤75)。
缓存访问器待上述操作完成后,反馈给上层客户端,本次请求结束。
上述流程中查询请求中指定页码时,其中还包含一个隐藏参数,为每页默认记录条目的个数。这个默认每页记录条目数,一般属于***配置参数。但是如果***修改这个默认配置参数,那么需要清除第一缓存器和第二缓存器的所有缓存,也就是清除第一缓存器和第二缓存器所有Key-Value键值对。
示例性装置
图12是本申请一示例性实施例提供的缓存数据处理的装置的结构示意图,如图12所示,该针对SAAS租户的数据缓存处理装置8包括:生成模块80,用于根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;第一查找模块81,用于查找所述第一缓存区域中所述关键数据的缓存状态;第一存储模块82,用于当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;第二查找模块83,用于查找所述第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;第二存储模块84,用于当所述第二缓存区域中未缓存所述业务数据标识时,存储所述业务数据标识到所述第二缓存区域中。
本申请提供的针对SAAS租户的数据缓存处理装置,采用两个模块分别缓存业务数据,第二缓存区域可以记录单条关键数据影响的集合缓存范围,能够减少对集合缓存的影响,在第二缓存区域中可以定位具体的关键数据,后续只需要对关键数据进行更新或是删除就可以改变第一缓存区域和第二缓存区域中的缓存数据,可以提高***的性能,解决多租户业务数据缓存时性能不高的问题。
上述生成模块80还可以进一步配置为:根据访问请求,确定业务数据的类型以及租户信息;根据所述业务数据的类型,确定所述第一缓存区域中对应的存储空间;根据所述访问请求、所述第一缓存区域中对应的存储空间以及租户信息,生成关键数据。
在一实施例中,上述第一存储模块81还可以进一步配置为:当所述第一缓存区域中未缓存所述关键数据时,在租户业务区域中进行查询;其中,所述租户业务区域通过关键数据,可以获得每个关键数据对应的查询值;存储所述关键数据和所述关键数据的查询值到所述第一缓存区域中;其中,所述关键数据和所述查询值形成所述第一缓存区域中的键值对。
图13是本申请另一示例性实施例提供的缓存数据处理的装置的结构示意图,如图13所示,上述针对SAAS租户的数据缓存处理装置8还可以包括:解析模块85,用于解析所述关键数据的查询值,获得所述查询值对应的业务数据标识。
在一实施例中,上述第二存储模块83还可以进一步配置为:当所述第二缓存区域中未缓存所述业务数据标识时,将所述业务数据标识对应的关键数据转换为关键值清单;其中,所述业务数据标识和所述关键值清单形成所述第二缓存区域中的键值对;存储所述业务数据标识以及所述关键值清单到所述第二缓存区域中。
在一实施例中,如图13所示,上述针对SAAS租户的数据缓存处理装置8还可以包括:查询模块86,用于当所述第二缓存区域中缓存所述业务数据标识时,查询所述业务数据标识对应的关键值清单中所述关键数据的存在状态;其中,所述第二缓存区域中预先缓存多个业务数据标识和多个业务数据标识分别对应的关键值清单,所述关键值清单中包括多个关键数据;添加模块87,用于当所述存在状态表示所述关键值清单中不包括所述关键数据时,将所述关键数据添加到所述关键值清单中;第三存储模块88,用于存储所述添加关键数据之后的关键值清单和所述业务数据标识到所述第二缓存区域中。
在一实施例中,如图13所示,上述针对SAAS租户的数据缓存处理装置8还可以包括:确定修改模块89,用于根据修改指令,确定将被修改的业务数据标识;第三查找模块90,用于在所述第二缓存区域中查找所述将被修改的业务数据标识对应的关键值清单;第一删除模块91,用于当所述第二缓存区域中存在所述将被修改的业务数据标识对应的关键值清单时,删除所述第二缓存区域中的所述关键值清单;第二删除模块92,用于删除所述第一缓存区域中所述关键值清单中对应的关键数据。
在一实施例中,如图13所示,上述针对SAAS租户的数据缓存处理装置8还可以包括:确定删除模块93,用于根据删除指令,确定将被删除的关键数据以及将被删除的业务数据标识;第三删除模块94,用于在所述第一缓存区域中删除所述将被删除的关键数据以及所述将被删除的关键数据对应的查询值;第四删除模块95,用于在所述第二缓存区域中删除所述将被删除的业务数据标识以及所述将被删除的业务数据标识对应的关键值清单。
示例性电子设备
下面,参考图14来描述根据本申请实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图14图示了根据本申请实施例的电子设备的框图。
如图14所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的针对SAAS租户的数据缓存处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图14中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (7)
1.一种针对SAAS租户的数据缓存处理方法,其特征在于,包括:
根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;其中,采用租户Id作为每个关键数据的前缀;
所述根据访问请求,生成关键数据包括:
根据访问请求,确定业务数据的类型以及租户信息;
根据所述业务数据的类型,确定第一缓存区域中对应的存储空间;第一缓存区域中划分多个存储空间,每个存储空间用于缓存不同类型的业务数据;
根据所述访问请求、所述第一缓存区域中对应的存储空间以及租户信息,生成关键数据;
查找第一缓存区域中所述关键数据的缓存状态;
当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;
查找第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;第二缓存区域中依据业务数据类型划分的存储空间,与第一缓存区域中依据业务数据类型划分的存储空间相对应;
当所述第二缓存区域中未缓存所述业务数据标识时,将所述业务数据标识对应的关键数据转换为关键值清单;其中,所述业务数据标识和所述关键值清单形成所述第二缓存区域中的键值对;
存储所述业务数据标识以及所述关键值清单到所述第二缓存区域中。
2.根据权利要求1所述的方法,其特征在于,所述当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中包括:
当所述第一缓存区域中未缓存所述关键数据时,在租户业务区域中进行查询;其中,所述租户业务区域中通过关键数据,可以获得每个关键数据对应的查询值;
存储所述关键数据和所述关键数据的查询值到所述第一缓存区域中;其中,所述关键数据和所述查询值形成所述第一缓存区域中的键值对。
3.根据权利要求1所述的方法,其特征在于,在查找所述第二缓存区域中所述业务数据标识的缓存状态之后,还包括:
当所述第二缓存区域中缓存所述业务数据标识时,查询所述业务数据标识对应的关键值清单中所述关键数据的存在状态;其中,所述第二缓存区域中预先缓存多个业务数据标识和多个业务数据标识分别对应的关键值清单,所述关键值清单中包括多个关键数据;
当所述存在状态表示所述关键值清单中不包括所述关键数据时,将所述关键数据添加到所述关键值清单中;
存储所述添加关键数据之后的关键值清单和所述业务数据标识到所述第二缓存区域中。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据修改指令,确定将被修改的业务数据标识;
在所述第二缓存区域中查找所述将被修改的业务数据标识对应的关键值清单;
当所述第二缓存区域中存在所述将被修改的业务数据标识对应的关键值清单时,删除所述第二缓存区域中的所述关键值清单;
删除所述第一缓存区域中所述关键值清单中对应的关键数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据删除指令,确定将被删除的关键数据以及将被删除的业务数据标识;
在所述第一缓存区域中删除所述将被删除的关键数据以及所述将被删除的关键数据对应的查询值;
在所述第二缓存区域中删除所述将被删除的业务数据标识以及所述将被删除的业务数据标识对应的关键值清单。
6.一种针对SAAS租户的数据缓存处理装置,其特征在于,包括:
生成模块,用于根据访问请求,生成关键数据;其中,所述访问请求包括请求访问的业务数据;其中,采用租户Id作为每个关键数据的前缀;
所述根据访问请求,生成关键数据包括:
根据访问请求,确定业务数据的类型以及租户信息;
根据所述业务数据的类型,确定第一缓存区域中对应的存储空间;第一缓存区域中划分多个存储空间,每个存储空间用于缓存不同类型的业务数据;
根据所述访问请求、所述第一缓存区域中对应的存储空间以及租户信息,生成关键数据;
第一查找模块,用于查找所述第一缓存区域中所述关键数据的缓存状态;
第一存储模块,用于当所述第一缓存区域中未缓存所述关键数据时,存储所述关键数据到所述第一缓存区域中;
第二查找模块,用于查找第二缓存区域中业务数据标识的缓存状态;其中,所述业务数据标识根据所述关键数据的查询值解析获得;第二缓存区域中依据业务数据类型划分的存储空间,与第一缓存区域中依据业务数据类型划分的存储空间相对应;
第二存储模块,用于当所述第二缓存区域中未缓存所述业务数据标识时,将所述业务数据标识对应的关键数据转换为关键值清单;其中,所述业务数据标识和所述关键值清单形成所述第二缓存区域中的键值对;存储所述业务数据标识以及所述关键值清单到所述第二缓存区域中。
7.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一所述的针对SAAS租户的数据缓存处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940240.XA CN113641711B (zh) | 2021-08-17 | 2021-08-17 | 一种针对saas租户的数据缓存处理方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940240.XA CN113641711B (zh) | 2021-08-17 | 2021-08-17 | 一种针对saas租户的数据缓存处理方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641711A CN113641711A (zh) | 2021-11-12 |
CN113641711B true CN113641711B (zh) | 2024-05-31 |
Family
ID=78422322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110940240.XA Active CN113641711B (zh) | 2021-08-17 | 2021-08-17 | 一种针对saas租户的数据缓存处理方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641711B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及*** |
CN105786918A (zh) * | 2014-12-26 | 2016-07-20 | 亿阳信通股份有限公司 | 基于数据载入存储空间的数据查询方法和装置 |
CN106126113A (zh) * | 2016-06-14 | 2016-11-16 | 烽火通信科技股份有限公司 | 一种家庭网关业务数据分类存储管理的方法 |
CN106294521A (zh) * | 2015-06-12 | 2017-01-04 | 交通银行股份有限公司 | 数据存储方法及数据仓库*** |
CN106453665A (zh) * | 2016-12-16 | 2017-02-22 | 东软集团股份有限公司 | 基于分布式缓存***的数据缓存方法、服务器和*** |
CN107622115A (zh) * | 2017-09-19 | 2018-01-23 | 武大吉奥信息技术有限公司 | 一种面向wfs服务的空间查询结果缓存方法 |
US10270879B1 (en) * | 2014-12-30 | 2019-04-23 | EMC IP Holding Company LLC | Multi-tenant caching storage intelligence |
CN110597739A (zh) * | 2019-06-03 | 2019-12-20 | 上海云盾信息技术有限公司 | 一种配置的管理方法、***及设备 |
CN110597859A (zh) * | 2019-09-06 | 2019-12-20 | 天津车之家数据信息技术有限公司 | 一种分页查询数据的方法和装置 |
CN112487037A (zh) * | 2020-12-08 | 2021-03-12 | 平安国际智慧城市科技股份有限公司 | 缓存数据的处理方法、装置、计算机设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567436B (zh) * | 2010-12-22 | 2017-04-12 | 塔塔咨询服务有限公司 | 多租户*** |
US9858187B2 (en) * | 2015-10-26 | 2018-01-02 | Salesforce.Com, Inc. | Buffering request data for in-memory cache |
US10013501B2 (en) * | 2015-10-26 | 2018-07-03 | Salesforce.Com, Inc. | In-memory cache for web application data |
US11238174B2 (en) * | 2019-01-31 | 2022-02-01 | Salesforce.Com, Inc. | Systems and methods of database encryption in a multitenant database management system |
US10922229B2 (en) * | 2019-03-11 | 2021-02-16 | Microsoft Technology Licensing, Llc | In-memory normalization of cached objects to reduce cache memory footprint |
US11126625B2 (en) * | 2019-05-31 | 2021-09-21 | Salesforce.Com, Inc. | Caching techniques for a database change stream |
-
2021
- 2021-08-17 CN CN202110940240.XA patent/CN113641711B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及*** |
CN105786918A (zh) * | 2014-12-26 | 2016-07-20 | 亿阳信通股份有限公司 | 基于数据载入存储空间的数据查询方法和装置 |
US10270879B1 (en) * | 2014-12-30 | 2019-04-23 | EMC IP Holding Company LLC | Multi-tenant caching storage intelligence |
CN106294521A (zh) * | 2015-06-12 | 2017-01-04 | 交通银行股份有限公司 | 数据存储方法及数据仓库*** |
CN106126113A (zh) * | 2016-06-14 | 2016-11-16 | 烽火通信科技股份有限公司 | 一种家庭网关业务数据分类存储管理的方法 |
CN106453665A (zh) * | 2016-12-16 | 2017-02-22 | 东软集团股份有限公司 | 基于分布式缓存***的数据缓存方法、服务器和*** |
CN107622115A (zh) * | 2017-09-19 | 2018-01-23 | 武大吉奥信息技术有限公司 | 一种面向wfs服务的空间查询结果缓存方法 |
CN110597739A (zh) * | 2019-06-03 | 2019-12-20 | 上海云盾信息技术有限公司 | 一种配置的管理方法、***及设备 |
CN110597859A (zh) * | 2019-09-06 | 2019-12-20 | 天津车之家数据信息技术有限公司 | 一种分页查询数据的方法和装置 |
CN112487037A (zh) * | 2020-12-08 | 2021-03-12 | 平安国际智慧城市科技股份有限公司 | 缓存数据的处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
罗桂琼.云计算环境下教育信息化资源共建共享研究.吉林人民出版社,2017,第9页. * |
邹立达 ; 李庆忠 ; 孔兰菊 ; 王振坤 ; .基于Chord的多租户索引机制研究.计算机学报.2016,(02),全文. * |
面向SaaS应用基于多宽表模式的多租户索引研究;张雅文;刘春霞;党伟超;白尚旺;;计算机应用与软件;20180712(07);全文 * |
面向SaaS应用基于键值对模式的多租户索引研究;孔兰菊;李庆忠;史玉良;王学;;计算机学报;20101215(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113641711A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
WO2023093245A1 (zh) | 基于分布式文件***的元数据查询方法、设备和存储介质 | |
US9930113B2 (en) | Data retrieval via a telecommunication network | |
JP2012174096A (ja) | 計算機システム及びデータ管理方法 | |
CN109815240B (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
US11176044B2 (en) | Systems and methods for implementing overlapping data caching for object application program interfaces | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN114356921A (zh) | 数据处理方法、装置、服务器及存储介质 | |
KR20100117415A (ko) | 데이터베이스 관리 방법 및 시스템 | |
CN111339171A (zh) | 数据查询的方法、装置及设备 | |
KR20100011649A (ko) | 어플리케이션 실행 방법 및 장치 | |
CN114201505A (zh) | 数据查询方法及装置、数据库*** | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
CN114443680A (zh) | 数据库管理***、相关装置、方法和介质 | |
US8396858B2 (en) | Adding entries to an index based on use of the index | |
CN114443615A (zh) | 数据库管理***、相关装置、方法和介质 | |
US10915541B2 (en) | Generic API | |
US11030177B1 (en) | Selectively scanning portions of a multidimensional index for processing queries | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN113641711B (zh) | 一种针对saas租户的数据缓存处理方法、装置及介质 | |
CN111125156A (zh) | 数据的查询方法、装置和电子设备 | |
US11106667B1 (en) | Transactional scanning of portions of a database | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
US11157506B2 (en) | Multiform persistence abstraction | |
US10599728B1 (en) | Metadata agent for query management |
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 |