CN110750566A - 数据处理方法、装置、缓存系统及缓存管理平台 - Google Patents
数据处理方法、装置、缓存系统及缓存管理平台 Download PDFInfo
- Publication number
- CN110750566A CN110750566A CN201911014723.6A CN201911014723A CN110750566A CN 110750566 A CN110750566 A CN 110750566A CN 201911014723 A CN201911014723 A CN 201911014723A CN 110750566 A CN110750566 A CN 110750566A
- Authority
- CN
- China
- Prior art keywords
- cache
- element object
- information
- set element
- expiration time
- 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
Links
Images
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/28—Databases characterised by their database models, e.g. relational or object models
Abstract
本申请涉及一种数据处理方法、装置、缓存系统及缓存管理平台,其中所述方法包括:接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;将所述缓存请求发送至NoSQL服务器中进行缓存,从而实现集合元素在缓存时的过期时间管理,能够让使用方和NoSQL服务器无感知的进行缓存过期处理。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、缓存系统及缓存管理平台。
背景技术
互联网的高速发展下,传统的关系数据库已经不堪重负,NoSQL数据库的出现,在不同的业务场景下,为数据的存储和查询提供了高效的解决方案。
其中一种NoSQL数据库是Redis,Redis提供了多种数据结构,如hash、set、string、list、sortedSet,并且读写性能较高。为了开发和使用方便,Redis支持在string类型的数据进行过期时间设置,对于hash、set、sortedSet,不能支持里面的元素进行过期时间设置。针对集合类型元素的过期时间设置,在日常业务中非常常用,比如用户的实时特征集合,特征元素五分钟计算一次,那么特征五分钟后就需要过期,某些特征一小时过期,那么过期时间就是一小时。由于集合元素管理较为复杂,常见的NoSQL都不支持设置集合元素的过期。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据处理方法、装置、缓存系统及缓存管理平台。
第一方面,本申请提供了一种数据处理的方法,所述方法包括:
接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;
将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;
将所述缓存请求发送至NoSQL服务器中进行缓存。
可选地,所述根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间,包括:
确定接收到所述缓存请求的时间作为写入时间;
根据写入时间以及所述缓存时长,计算所述待缓存的集合元素对象的缓存过期时间。
可选地,所述存储信息包括存储起始位置以及存储大小;
所述记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息,包括:
将所述存储起始位置、所述存储大小以及所述写入时间作为缓存索引信息记录在预设的索引文件中。
可选地,所述方法还包括:
在预设的第二文件中查找是否存在所述集合元素对象的属性信息;
若存在,则将所述第二文件中记录的所述属性信息对应的写入时间更新为所述缓存请求对应的写入时间;
若不存在,则将所述属性信息以及对应的写入时间记录在所述第二文件中。
第二方面,本申请还提供了一种数据处理的方法,所述方法包括:
从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;
在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;
当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
可选地,所述存储信息包括存储起始位置以及存储大小,所述在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间,包括:
在所述第一文件中定位所述存储起始位置,并从所述存储起始位置开始读取所述存储大小的数据,作为目标集合元素对象信息;
从所述目标集合元素对象信息中获取所述缓存过期时间。
可选地,所述缓存索引信息还包括所述目标集合元素对象的写入时间;所述目标集合元素对象信息还包括目标集合元素对象的属性信息;
在所述当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令之前,还包括:
在预设的第二文件中查找所述目标集合元素对象的属性信息,以获得所述目标集合元素对象的最新写入时间;
比较所述最新写入时间与所述缓存索引信息中记录的写入时间;
若所述最新写入时间与所述缓存索引信息中记录的写入时间一致,则判断所述缓存过期时间是否已过期。
可选地,所述方法还包括:
若所述最新写入时间超过所述缓存索引信息中记录的写入时间,则判定所述缓存索引信息为无效信息。
第三方面,本申请还提供了一种数据处理的装置,所述装置包括:
请求接收模块,用于接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
缓存过期时间确定模块,用于根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;
信息记录模块,用于将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;
请求发送模块,用于将所述缓存请求发送至NoSQL服务器中进行缓存。
可选地,所述缓存过期时间确定模块具体用于:
确定接收到所述缓存请求的时间作为写入时间;
根据写入时间以及所述缓存时长,计算所述待缓存的集合元素对象的缓存过期时间。
可选地,所述存储信息包括存储起始位置以及存储大小;
所述信息记录模块包括:
索引子模块,用于将所述存储起始位置、所述存储大小以及所述写入时间作为缓存索引信息记录在预设的索引文件中。
可选地,所述装置还包括:
写入时间记录模块,用于在预设的第二文件中查找是否存在所述集合元素对象的属性信息;若存在,则将所述第二文件中记录的所述属性信息对应的写入时间更新为所述缓存请求对应的写入时间;若不存在,则将所述属性信息以及对应的写入时间记录在所述第二文件中。
第四方面,本申请还提供了一种数据处理的装置,所述装置包括:
缓存索引信息读取模块,用于从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;
缓存过期时间获取模块,用于在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;
缓存过期处理模块,用于当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
可选地,所述存储信息包括存储起始位置以及存储大小,所述缓存过期时间获取模块具体用于:
在所述第一文件中定位所述存储起始位置,并从所述存储起始位置开始读取所述存储大小的数据,作为目标集合元素对象信息;
从所述目标集合元素对象信息中获取所述缓存过期时间。
可选地,所述缓存索引信息还包括所述目标集合元素对象的写入时间;所述目标集合元素对象信息还包括目标集合元素对象的属性信息;
所述装置还包括:
最新写入时间获取模块,用于在所述当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令之前,在预设的第二文件中查找所述目标集合元素对象的属性信息,以获得所述目标集合元素对象的最新写入时间;
过期判断模块,用于比较所述最新写入时间与所述缓存索引信息中记录的写入时间;若所述最新写入时间与所述缓存索引信息中记录的写入时间一致,则判断所述缓存过期时间是否已过期。
可选地,所述装置还包括:
无效判断模块,用于若所述最新写入时间超过所述缓存索引信息中记录的写入时间,则判定所述缓存索引信息为无效信息。
第五方面,本申请还提供了一种缓存系统,所述缓存系统包括客户端、缓存管理服务器以及NoSQL服务器,
所述客户端用于,向所述缓存管理服务器发送缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
所述缓存管理服务器用于,根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;以及,将所述缓存请求发送至NoSQL服务器中;
所述NoSQL服务器用于,根据所述缓存请求,对所述待缓存的集合元素对象进行缓存。
第六方面,本申请还提供了一种缓存管理平台,所述缓存管理平台包括缓存管理服务器以及NoSQL服务器,
所述缓存管理服务器用于,从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令;
所述NoSQL服务器用于,根据所述删除指令,删除对应的目标集合元素对象。
第七方面,本申请还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述的方法。
第八方面,本申请还提供了一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述电子设备能够执行如上述的方法。
本申请具有如下有益效果:
在本实施例中,在接收到包含集合元素对象的属性信息以及缓存时长的缓存请求时,在将缓存请求转发至NoSQL服务器前,可以先通过缓存时长确定待缓存的集合元素对象的缓存过期时间,然后将集合元素对象信息以及缓存过期时间存储至第一文件中进行缓存到期时间的管理,并记录上述集合元素对象信息以及所述缓存过期时间存储在第一文件中的存储信息,以进行存储信息的管理,实现了集合元素在缓存时的过期时间管理,且整个过程由Cache Manager服务器处理,能够让使用方和NoSQL服务器无感知的进行缓存过期处理。
附图说明
图1为本申请的一种数据缓存架构示意图;
图2为本申请的一种数据处理的方法实施例的步骤流程图;
图3为本申请的另一种数据处理的方法实施例的步骤流程图;
图4为本申请的一种数据处理的装置实施例的结构框图;
图5为本申请的另一种数据处理的装置实施例的结构框图;
图6为本申请的一种缓存系统实施例的结构框图;
图7为本申请的一种缓存管理平台实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请提供的一种数据处理的方法,可以应用于通过NoSQL数据库进行数据缓存的场景。参照图1示出了本申请的一种数据缓存架构示意图,如图1所示,本申请通过部署一个缓存管理Cache Manager服务器,作为NoSQL数据库与使用方(即图1中的客户端)之间的中间层。使用方查询和设置缓存,先经过Cache Manager服务器,Cache Manager进行缓存的管理后,再发送到NoSQL服务器进行缓存的读写。
在一种实施方式中,Cache Manager分别与客户端和NoSQL服务器进行连接的方式如下:
客户端与Cache Manager的连接至少包括如下两种方案,一种是客户端只配置Cache Manager地址,由Cache Manager拦截所有请求,处理具有超期信息的缓存请求,其余请求只是转发。另一种是客户端配置两个地址,一个Cache Manager,一个NoSQL服务器,这样子Cache Manager只需处理客户端发送过来的请求则可,以尽最大程度保证服务器的性能。
Cache Manager与NoSQL服务器建立连接的方式也可以包括但不限于如下两种方案:一种是Cache Manager读取配置文件中的NoSQL服务器的地址进行连接;另一种是CacheManager解析客户端发送的请求,获取NoSQL服务器地址进行连接。
本实施例部署的中间层Cache Manager,对客户端和NoSQL服务器而言,接入简单,无感知,并且无需修改原有代码。
另外,针对各种NoSQL服务器,本实施例可以在Cache Manager端进行适配,通用性强。
以下实施例站在Cache Manager服务器的角度,对本申请实施例中Cache Manager进行缓存管理的过程进行说明:
参照图2,示出了本申请实施例的一种数据处理的方法实施例的步骤流程图,可以包括如下步骤:
步骤101,接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长。
在本实施例中,缓存请求是指携带缓存过期信息的写请求,示例性地,该缓存过期信息可以包括缓存时长。例如,缓存时长可以包括30秒、1分钟、5分钟、60分钟等。
在实现中,该缓存请求为客户端向Cache Manager服务器发送的请求,在客户端中可以增加一个API(Application Programming Interface,应用程序接口)用来提供给用户设置缓存时长,则通过这个API生成的请求客户端会发送至Cache Manager服务器,其他API生成的请求客户端则直接发送给NoSQL服务器。
在一种示例中,上述用来提供给用户设置缓存时长的API接口,可以向用户提供默认的缓存时长列表供用户选择。在其他示例中,若缓存时长列表中的缓存时长均不是用户所需的,用户还可以自定义设定其他的缓存时长。
示例性地,缓存请求可以包括待缓存的集合元素对象以及集合元素对象信息。其中,集合元素对象信息进一步可以包括集合元素对象的属性信息以及缓存时长。
集合元素对象可以为数据集合中的元素的数据。例如,以Redis为例子,集合元素对象可以为Redis中的每个元素的数据。
示例性的,属性信息可以包括但不限于集合类型(以Redis为例子,集合类型可以包括哈希、列表、集合、有序集合等)、集合名称、集合中的元素(即集合的键名)等。
步骤102,根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间。
在该步骤中,当Cache Manager服务器接收到缓存请求,并从缓存请求中解析出缓存的集合元素对象以及集合元素对象信息以后,可以根据集合元素对象信息中的缓存时长,确定当前集合元素对象的缓存过期时间。
在一种实施方式中,步骤102可以包括如下子步骤:
确定接收到所述缓存请求的时间作为写入时间;根据写入时间以及所述缓存时长,计算所述待缓存的集合元素对象的缓存过期时间。
例如,接收到缓存请求的写入时间为2019-10-13 16:35:28,缓存时长为5分钟,则缓存过期时间就是2019-10-13 16:40:28。
步骤103,将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息。
在本实施例中,第一文件为用于记录集合元素对象的缓存过期时间的文件(又称Expire Time文件)。在一种实施方式中,Cache Manager可以以json格式在Expire Time文件中记录集合元素对象信息以及缓存过期时间。
例如,假设Cache Manager接收到一条缓存请求,其中该请求携带的集合类型为:redis的哈希;集合名称为“user”;元素(即集合的键名)为”username”;缓存时长为5分钟;写入时间为:2019-10-13 16:35:28,则计算得到的缓存过期时间为2019-10-13 16:40:28。则在Expire Time文件中记录的json格式数据如下:
在本实施例中,为了便于在第一文件中查找各集合元素对象的信息,在存储集合元素对象信息以及缓存过期时间以后,还可以获取该集合元素对象信息以及缓存过期时间的存储信息,根据存储信息可以定位数据在第一文件中的存储位置。
示例性地,存储信息至少可以包括存储起始位置Offset以及存储大小Size。例如,在上述集合名称为“user”的例子中,假设上述json占用30个字节,则可以得到存储大小的值为30;假设上述json从Expire Time文件的第99个字节开始,则存储起始位置Offset的值为99。
在一种实施方式中,在获得存储信息以后,还可以采用如下方式记录该存储信息:
将所述存储起始位置、所述存储大小以及所述写入时间作为缓存索引信息记录在预设的索引文件中。
在该实施例中,可以通过索引文件(又可以称为Cache Index文件)来记录集合元素对象的存储信息。在实际中,Cache Index文件除了记录存储信息以外,还可以记录集合元素对象的写入时间(即Cache Manager接收到缓存请求的时间),该写入时间可以作为当前缓存数据的版本信息,存储信息和写入时间可以作为当前的集合元素对象的缓存索引信息记录在Cache Index文件中。
在一种实施方式中,可以预先设定缓存索引信息的存储结构,在一种例子中,可以设定Cache Index文件中每个缓存索引信息占用20个字节,其中,前8个字节用于记录存储起始位置Offset,中间4个字节用于记录存储大小size,后8个字节可以用于记录写入时间。
在一种实施例中,除了上述的Expire Time文件以及Cache Index文件以外,本实施例还可以包括第二文件,该第二文件可以用于存储各集合元素对象的写入时间,从而实现对各集合元素对象的版本记录,因此第二文件又可以称为Cache Version文件。则本实施例还可以包括如下步骤:
在预设的第二文件中查找是否存在所述集合元素对象的属性信息;若存在,则将所述第二文件中记录的所述属性信息对应的写入时间更新为所述缓存请求对应的写入时间;若不存在,则将所述属性信息以及对应的写入时间记录在所述第二文件中。
具体的,在实际中,由于同一个缓存对象(即集合元素对象)多次写入后,缓存过期时间也需要跟着变化,因此可以维护一个Cache Version文件来保存各集合元素对象的最新版本号,即最新的写入时间。在Cache Manager接收到缓存请求并确定写入时间以后,可以在Cache Version文件中查找该缓存请求携带的集合元素对象的属性信息。若查找成功,表示当前集合元素对象不是首次缓存,此时,可以将Cache Version文件记录的该集合元素对象前一次写入时间更新为当前缓存请求对应的写入时间。例如,对于某个集合元素对象,假设客户端在10:00的时候写入缓存,半个小时后到期,此时Cache Version文件记录的写入时间为10:00;然后10:05客户端又发起一个缓存请求,30分钟到期,则可以将CacheVersion文件记录的10:00更新为10:05,以确保Cache Version文件保存的写入时间为最新的写入时间。
相应地,如果在Cache Version文件中查找不到当前缓存请求携带的集合元素对象的属性信息,则表示当前集合元素对象是首次缓存,则可以直接将对应的属性信息以及写入时间记录在Cache Version文件中。
步骤104,将所述缓存请求发送至NoSQL服务器中进行缓存。
在一种例子中,在完成上述Expire Time文件、Cache Index文件以及CacheVersion文件的记录以后,Cache Manager完成了对缓存请求的数据管理,然后CacheManager可以直接将缓存请求发送至NoSQL服务器。由于Cache Index文件和Expire Time文件等文件在设计上都是顺序读写,没有随机写以及修改的需要,可以使用mmap(一种内存映射文件的方法)等技术进行快速处理,mmap等技术对于文件的整块读写请求进行直接映射,读写效率极高。
在其他例子中,Cache Manager还可以根据待缓存的集合元素对象以及对应的属性信息生成写入请求,并将该写入请求发送至NoSQL服务器。
NoSQL服务器接收到请求以后,对该请求解析后将集合元素对象以及对应的属性信息缓存在NoSQL数据库中。
在本实施例中,在接收到包含集合元素对象的属性信息以及缓存时长的缓存请求时,在将缓存请求转发至NoSQL服务器前,可以先通过缓存时长确定待缓存的集合元素对象的缓存过期时间,然后将集合元素对象信息以及缓存过期时间存储至第一文件中进行缓存到期时间的管理,并记录上述集合元素对象信息以及所述缓存过期时间存储在第一文件中的存储信息,以进行存储信息的管理,实现了集合元素在缓存时的过期时间管理,且整个过程由Cache Manager服务器处理,能够让使用方和NoSQL服务器无感知的进行缓存过期处理。
参照图3,示出了本申请实施例的另一种数据处理的方法实施例的步骤流程图,可以包括如下步骤:
步骤201,从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息。
在本实施例中,对于每种缓存时长,都可以设定指定的单独线程来进行数据处理。例如,对于缓存时长分别为1分钟、5分钟、10分钟和60分钟,分别设定对应的线程进行缓存管理。
在步骤201中,线程可以首先扫描索引文件(Cache Index文件),读取到指定大小的缓存索引信息。
例如,线程可以首先读取Cache Index文件的前20个字节,在这20个字节中,从前12个字节中得到目标集合元素对象的存储信息,从剩下的8个字节中得到该目标集合元素对象的写入时间。
步骤202,在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间。
在实际中,从Cache Index文件中读取到的目标集合元素对象的存储信息为目标集合元素对象在预设的第一文件中的存储信息,其中,该第一文件又可以称为Expire Time文件,用于记录目标集合元素对象的缓存过期时间。每个Expire Time都使用对应的CacheIndex文件进行索引。
线程在得到存储信息以后,则可以在Expire Time文件中定位该存储信息对应的存储位置,并从该存储位置中读取目标集合元素对象的缓存过期时间。
示例性地,存储信息可以包括存储起始位置Offset以及存储大小Size,例如,在记录存储信息的前12个字节中,可以从前8个字节中获得存储起始位置Offset,从后4个字节中获得存储大小Size。
在一种实施方式中,步骤202可以包括如下子步骤:
在所述第一文件中定位所述存储起始位置,并从所述存储起始位置开始读取所述存储大小的数据,作为目标集合元素对象信息;从所述目标集合元素对象信息中获取所述缓存过期时间。
例如,假设存储起始位置为99,存储大小为30字节,则可以从对应的Expire Time文件的第99个位置,读取30个字节的数据,转化成目标集合元素对象信息,示例性地,目标集合元素对象信息可以包括但不限于:目标集合元素对象的属性信息(包括集合类型、集合名称、集合中的元素等)、缓存时长、缓存过期时间等。
在一种实施方式中,从Expire Time文件获得目标集合元素对象的属性信息以后,还可以包括如下步骤:
在预设的第二文件中查找所述目标集合元素对象的属性信息,以获得所述目标集合元素对象的最新写入时间;比较所述最新写入时间与所述缓存索引信息中记录的写入时间;若所述最新写入时间与所述缓存索引信息中记录的写入时间一致,则判断所述缓存过期时间是否已过期。
在该实施例中,第二文件用于记录各集合元素对象的最新写入时间,即最新的版本信息,第二文件又可以称为Cache Version文件。在实际中,Cache Version文件中存储了各集合元素对象的属性信息与最新写入时间的关联关系。当线程获得目标集合元素对象的属性信息以后,则可以在Cache Version文件中查找该目标集合元素对象的属性信息,以获得目标集合元素对象的最新写入时间。
然后比较目标集合元素对象的最新写入时间与缓存索引信息中记录的写入时间,如果两者一致,则表示当前读取的缓存索引信息为有效信息,此时可以进一步判断目标集合元素对象的缓存过期时间是否已过期。
在一种实施方式中,可以将当前时间与缓存过期时间进行比较,如果当前时间超过缓存过期时间,则表示缓存过期时间已经过期;如果当前时间还没有到达缓存过期时间,则表示缓存过期时间没有过期
在另一方面,如果目标集合元素对象的最新写入时间与缓存索引信息中记录的写入时间不一致,即最新写入时间超过缓存索引信息中记录的写入时间,则表示当前读取的缓存索引信息为无效信息,则可以忽略该缓存索引信息,不进行处理。
步骤203,当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
在该步骤中,当线程确定缓存过期时间已过期时,则可以向NoSQL服务器发送针对当前目标集合元素对象的删除指令,在一种实现中,线程可以根据目标集合元素对象的属性信息生成删除指令。
NoSQL服务器接收到删除指令以后,可以从中解析出属性信息,并根据该属性信息删除对应的目标集合元素对象。
线程处理完一个缓存索引信息后,接着再从Cache Index读取下一个指定大小的字节,继续上述过程。
在其他实施例中,当线程确定缓存过期时间没有过期,由于是定时过期,先写入的缓存,过期时间会比后写入的缓存的过期时间早,则线程可以休眠,直到到达缓存过期时间,然后进行步骤203的清理缓存流程。例如,假设离缓存到期时间还差10s,那么线程可以休眠10s后,再唤醒线程进行缓存清理。
在本实施例中,可以实现对缓存的集合元素的过期时间的管理,在这个过程中,可以首先从索引文件中读取指定大小的、包括目标集合元素对象的存储信息的缓存索引信息,然后在第一文件中定位该存储信息对应的存储位置,以获得目标集合元素对象的缓存过期时间,当判定缓存过期时间已过期时,则可以向NoSQL服务器发送针对目标集合元素对象的删除指令,以指引NoSQL服务器删除所述目标集合元素对象,NoSQL服务器只需根据删除指令执行对应的删除操作,对NoSQL服务器的代码修改少,通用性高。
基于上述的数据处理方法,参照图4,示出了本申请一种数据处理的装置实施例的结构框图,可以包括如下模块:
请求接收模块401,用于接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
缓存过期时间确定模块402,用于根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;
信息记录模块403,用于将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;
请求发送模块404,用于将所述缓存请求发送至NoSQL服务器中进行缓存。
在一种实施方式中,所述缓存过期时间确定模块402具体用于:
确定接收到所述缓存请求的时间作为写入时间;
根据写入时间以及所述缓存时长,计算所述待缓存的集合元素对象的缓存过期时间。
在一种实施方式中,所述存储信息包括存储起始位置以及存储大小;
所述信息记录模块403包括:
索引子模块,用于将所述存储起始位置、所述存储大小以及所述写入时间作为缓存索引信息记录在预设的索引文件中。
在一种实施方式中,所述装置还包括:
写入时间记录模块,用于在预设的第二文件中查找是否存在所述集合元素对象的属性信息;若存在,则将所述第二文件中记录的所述属性信息对应的写入时间更新为所述缓存请求对应的写入时间;若不存在,则将所述属性信息以及对应的写入时间记录在所述第二文件中。
参照图5,示出了本申请另一种数据处理的装置实施例的结构框图,可以包括如下模块:
缓存索引信息读取模块501,用于从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;
缓存过期时间获取模块502,用于在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;
缓存过期处理模块503,用于当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
在一种实施方式中,所述存储信息包括存储起始位置以及存储大小,所述缓存过期时间获取模块502具体用于:
在所述第一文件中定位所述存储起始位置,并从所述存储起始位置开始读取所述存储大小的数据,作为目标集合元素对象信息;
从所述目标集合元素对象信息中获取所述缓存过期时间。
在一种实施方式中,所述缓存索引信息还包括所述目标集合元素对象的写入时间;所述目标集合元素对象信息还包括目标集合元素对象的属性信息;
所述装置还包括:
最新写入时间获取模块,用于在所述当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令之前,在预设的第二文件中查找所述目标集合元素对象的属性信息,以获得所述目标集合元素对象的最新写入时间;
过期判断模块,用于比较所述最新写入时间与所述缓存索引信息中记录的写入时间;若所述最新写入时间与所述缓存索引信息中记录的写入时间一致,则判断所述缓存过期时间是否已过期。
在一种实施方式中,所述装置还包括:
无效判断模块,用于若所述最新写入时间超过所述缓存索引信息中记录的写入时间,则判定所述缓存索引信息为无效信息。
参照图6,示出了本申请一种缓存系统实施例的结构框图,所述缓存系统包括客户端10、缓存管理服务器20以及NoSQL服务器30,
所述客户端10用于,向所述缓存管理服务器发送缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
所述缓存管理服务器20用于,根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;以及,将所述缓存请求发送至NoSQL服务器中;
所述NoSQL服务器30用于,根据所述缓存请求,对所述待缓存的集合元素对象进行缓存。
参照图7,示出了本申请一种缓存管理平台实施例的结构框图,所述缓存管理平台包括缓存管理服务器40以及NoSQL服务器50,
所述缓存管理服务器40用于,从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令;
所述NoSQL服务器50用于,根据所述删除指令,删除对应的目标集合元素对象。
关于上述实施例中的装置、系统及平台,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据处理的方法,其特征在于,所述方法包括:
接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;
将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;
将所述缓存请求发送至NoSQL服务器中进行缓存。
2.根据权利要求1所述的方法,其特征在于,所述根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间,包括:
确定接收到所述缓存请求的时间作为写入时间;
根据写入时间以及所述缓存时长,计算所述待缓存的集合元素对象的缓存过期时间。
3.根据权利要求2所述的方法,其特征在于,所述存储信息包括存储起始位置以及存储大小;
所述记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息,包括:
将所述存储起始位置、所述存储大小以及所述写入时间作为缓存索引信息记录在预设的索引文件中。
4.一种数据处理的方法,其特征在于,所述方法包括:
从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;
在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;
当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
5.一种数据处理的装置,其特征在于,所述装置包括:
请求接收模块,用于接收缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
缓存过期时间确定模块,用于根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;
信息记录模块,用于将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;
请求发送模块,用于将所述缓存请求发送至NoSQL服务器中进行缓存。
6.一种数据处理的装置,其特征在于,所述装置包括:
缓存索引信息读取模块,用于从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;
缓存过期时间获取模块,用于在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;
缓存过期处理模块,用于当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令,所述删除指令用于指引所述NoSQL服务器删除所述目标集合元素对象。
7.一种缓存系统,其特征在于,所述缓存系统包括客户端、缓存管理服务器以及NoSQL服务器,
所述客户端用于,向所述缓存管理服务器发送缓存请求,所述缓存请求包括待缓存的集合元素对象以及集合元素对象信息,所述集合元素对象信息包括所述集合元素对象的属性信息以及缓存时长;
所述缓存管理服务器用于,根据所述缓存时长,确定所述待缓存的集合元素对象的缓存过期时间;将所述集合元素对象信息以及所述缓存过期时间存储至预设的第一文件中,并记录所述集合元素对象信息以及所述缓存过期时间存储在所述第一文件中的存储信息;以及,将所述缓存请求发送至NoSQL服务器中;
所述NoSQL服务器用于,根据所述缓存请求,对所述待缓存的集合元素对象进行缓存。
8.一种缓存管理平台,其特征在于,所述缓存管理平台包括缓存管理服务器以及NoSQL服务器,
所述缓存管理服务器用于,从预设的索引文件中读取指定大小的缓存索引信息,所述缓存索引信息包括目标集合元素对象的存储信息;在预设的第一文件中定位所述存储信息对应的存储位置,以获得所述目标集合元素对象的缓存过期时间;当判定所述缓存过期时间已过期时,则向NoSQL服务器发送针对所述目标集合元素对象的删除指令;
所述NoSQL服务器用于,根据所述删除指令,删除对应的目标集合元素对象。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-3任一项和/或4所述的方法。
10.一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述电子设备能够执行如权利要求1-3任一项和/或4中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014723.6A CN110750566A (zh) | 2019-10-24 | 2019-10-24 | 数据处理方法、装置、缓存系统及缓存管理平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911014723.6A CN110750566A (zh) | 2019-10-24 | 2019-10-24 | 数据处理方法、装置、缓存系统及缓存管理平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110750566A true CN110750566A (zh) | 2020-02-04 |
Family
ID=69279608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911014723.6A Pending CN110750566A (zh) | 2019-10-24 | 2019-10-24 | 数据处理方法、装置、缓存系统及缓存管理平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750566A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727507A (zh) * | 2019-10-21 | 2020-01-24 | 广州欢聊网络科技有限公司 | 一种消息的处理方法、装置、计算机设备和存储介质 |
CN112307040A (zh) * | 2020-10-23 | 2021-02-02 | 北京锐安科技有限公司 | 一种数据状态处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653198A (zh) * | 2014-11-13 | 2016-06-08 | 杭州迪普科技有限公司 | 数据处理方法及装置 |
CN107562905A (zh) * | 2017-09-08 | 2018-01-09 | 深圳市金立通信设备有限公司 | 数据的管理方法、服务器及计算机可读存储介质 |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN109344296A (zh) * | 2018-08-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 实现Redis的HASH键的域生命周期控制方法、系统、服务器及存储介质 |
CN110019263A (zh) * | 2017-10-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 信息存储方法和装置 |
-
2019
- 2019-10-24 CN CN201911014723.6A patent/CN110750566A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653198A (zh) * | 2014-11-13 | 2016-06-08 | 杭州迪普科技有限公司 | 数据处理方法及装置 |
CN107562905A (zh) * | 2017-09-08 | 2018-01-09 | 深圳市金立通信设备有限公司 | 数据的管理方法、服务器及计算机可读存储介质 |
CN110019263A (zh) * | 2017-10-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 信息存储方法和装置 |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN109344296A (zh) * | 2018-08-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 实现Redis的HASH键的域生命周期控制方法、系统、服务器及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727507A (zh) * | 2019-10-21 | 2020-01-24 | 广州欢聊网络科技有限公司 | 一种消息的处理方法、装置、计算机设备和存储介质 |
CN112307040A (zh) * | 2020-10-23 | 2021-02-02 | 北京锐安科技有限公司 | 一种数据状态处理方法、装置、设备及存储介质 |
CN112307040B (zh) * | 2020-10-23 | 2023-11-07 | 北京锐安科技有限公司 | 一种数据状态处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269885B2 (en) | Cache for efficient record lookups in an LSM data structure | |
US6754799B2 (en) | System and method for indexing and retrieving cached objects | |
US9715507B2 (en) | Techniques for reconciling metadata and data in a cloud storage system without service interruption | |
US8219562B1 (en) | Efficient storage and retrieval for large number of data objects | |
US10564880B2 (en) | Data deduplication method and apparatus | |
US7437364B1 (en) | System and method of accessing a document efficiently through multi-tier web caching | |
CN108055302B (zh) | 一种图片缓存处理方法、系统和服务器 | |
US8738572B2 (en) | System and method for storing data streams in a distributed environment | |
CN110046133B (zh) | 一种存储文件系统的元数据管理方法、装置及系统 | |
GB2409071A (en) | Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time | |
US8572130B2 (en) | Replacement policy for resource container | |
US20210303566A1 (en) | Data storage using a bi-temporal index | |
US20090063508A1 (en) | Computer, system, storage and access control method, and access control method | |
CN106326499B (zh) | 一种数据处理方法及装置 | |
WO2017097048A1 (zh) | 一种数据查找方法与装置 | |
CN109144413A (zh) | 一种元数据管理方法及装置 | |
US7536512B2 (en) | Method and apparatus for space efficient identification of candidate objects for eviction from a large cache | |
CN110399348A (zh) | 文件重删方法、装置、系统及计算机可读存储介质 | |
WO2020125630A1 (zh) | 文件读取 | |
CN110750566A (zh) | 数据处理方法、装置、缓存系统及缓存管理平台 | |
US7249219B1 (en) | Method and apparatus to improve buffer cache hit rate | |
CN105915619B (zh) | 顾及访问热度的网络空间信息服务高性能内存缓存方法 | |
CN111913913B (zh) | 访问请求的处理方法和装置 | |
CN110941595A (zh) | 一种文件系统访问方法及装置 | |
CN108038121B (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: 20200204 |