一种数据库分布式缓存系统及方法技术方案

技术编号:19822170 阅读:23 留言:0更新日期:2018-12-19 14:50
本申请提出一种数据库分布式缓存系统及方法,包括以下步骤:步骤1:预先取出可能会被访问的数据记录,对数据进行预处理。步骤2:通过算法生成主键key,用于定位此数据的位置。步骤3:根据主键key算出需要存储的服务器地址。步骤4:将数据按照key/value的形式进行分布式存储。步骤5:读取数据时,先遍历缓存中的数据,如可获得结果,则请求成功。步骤6:如无法获得所需数据,则通过数据库访问获得数据,并将结果按照上述方法存入缓存系统中,同时将此操作涉及的相关数据表按上述步骤存入缓存系统。本申请有效加快响应速度,提升使用体验,并且减少了硬盘I/O的次数,提升数据库稳定性,使系统更加可靠;提高缓存的利用率和访问速度,减小单机阻塞风险。

【技术实现步骤摘要】
一种数据库分布式缓存系统及方法
本专利技术涉及一种数据库分布式缓存系统及方法,属于互联网应用

技术介绍
随着互联网技术的不断发展,电商、医疗、农业等领域渐渐采用互联网技术为人们提供可靠、便捷的服务。关系型数据库作为这些服务的基础设施,起着至关重要的作用。然而、传统的数据库服务承担了太多的任务,包括存取业务数据及其它需要持久化的业务无关数据。当上层服务的规模逐渐扩大时,越来越多的数据访问请求让底层数据库服务不堪重负。通常关系型数据库都采用硬盘作为数据存储的介质,低速率的硬盘I/O访问更是带来了过高的响应延迟。因此关系型数据库在海量数据、高并发访问下面临着诸多限制。内存是一种高速的存储介质、其读写速率远远高于硬盘。因此将内存作为关系型数据库的缓存,不仅可以有效减轻数据库服务器的访问压力,提高服务的稳定性,而且可以大大加快访问请求的响应速度。然而,单机的硬件性能有限,随着缓存数据量的快速增长,达到上亿甚至数十亿时,查找速度将无法满足需求。因此在此基础上,需要设计一种分布式架构的缓存方案。
技术实现思路
本申请的目的在于:针对现有技术及存在的缺陷,提出一种数据库分布式缓存系统及方法,能够在庞大数据量情况下提供高响应速率的访问处理。本申请提出一种数据库分布式缓存方法,该方法包括以下步骤:步骤1:预先取出数据库中可能会被访问的数据记录,按照预定义的缓存存储结构对数据进行处理;步骤2:通过一定算法为处理好的数据生成一条主键key,用于唯一定位此数据在缓存中的位置;步骤3:根据上述的主键key计算出分布式缓存服务器系统中需要存储的服务器地址id;步骤4:将数据按照key/value的形式存入此id的服务器进行分布式存储;步骤5:业务需要读取数据时,先直接遍历缓存中的数据,如果可以获得结果,则请求成功;步骤6:如果缓存中无法获得所需数据,则通过数据库访问获得数据,并将结果按照上述方法存入缓存系统中,并且将此操作涉及的相关数据表按照上述步骤存入缓存系统,方便后续的访问请求处理。进一步地,步骤1中,从数据库中读取的数据包括数据库名称、数据表名称、数据表中属性名称、数据库类型值和对应的记录值。进一步地,步骤1中,处理过程中按照实际业务需求,可以将原数据中冗余的数据进行剔除,另外也可以新增需要的数据;处理后的数据至少包括属性名称和对应值组成的键/值对,以及自定义的缓存过期时间。进一步地,步骤3中,所述主键key经过hash计算得到的哈希值与分布式缓存服务器的总数量进行求模,获得缓存服务器地址id。一种数据库分布式缓存系统,包括数据服务模块、缓存管理模块、缓存存储模块和数据库模块;数据服务模块:其用于解析上层请求,判断其中的数据访问请求,按照实际需要选择缓存或者数据库来进行处理;缓存存储模块:其用于分布式地存储、读取缓存数据;数据库模块:其用于持久化地存储业务相关数据,为缓存管理模块中的读取单元提供数据源;缓存管理模块:其用于缓存数据读取、存储的管理以及缓存存储服务器的维护管理。进一步地,所述缓存管理模块包括:读取单元:其用于执行数据库结构化查询语言sql,从数据库中读取相关数据;数据预处理单元:其用于执行服务端处理语言,对从读取单元接受到的数据进行预处理,剔除其中冗余的数据并且新增需要的数据;写入单元:其用于执行服务端处理语言,对数据处理单元返回的结果进行写入分布式缓存系统的操作;缓存服务器管理单元:其用于对写入单元的待写入数据按照算法分配缓存存储服务器,所述缓存存储服务器位于所述缓存存储模块,并且管理缓存存储服务器在分布式缓存系统中的添加和删除。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1.采用内存介质作为业务数据服务直接交互的对象,具备高速率的读写特性,有效加快了访问请求的响应速度,提升了用户的使用体验。并且大大减少了硬盘I/O的次数,提升了底层关系型数据库的稳定性,使得整个系统更加可靠;2.采用分布式架构设计了缓存系统,将缓存数据存储在不同的缓存存储服务器中,提高了缓存的利用率和访问速度,减小了业务规模增长带来的单机阻塞风险。附图说明图1为本申请实施例提供的系统结构示意图。图2为本申请实施例提供的方法流程示意图。具体实施方式下面结合说明书附图对本专利技术的技术方案做进一步的详细说明。本申请提出一种数据库分布式缓存方法,该方法包括以下步骤。步骤1:预先取出数据库中可能会被访问的数据记录,按照预定义的缓存存储结构对数据进行处理。从数据库中读取的数据包括数据库名称、数据表名称、数据表中属性名称、数据库类型值和对应的记录值。处理过程中按照实际业务需求,可以将原数据中冗余的数据进行剔除,另外也可以新增需要的数据;处理后的数据至少包括属性名称和对应值组成的键/值对,以及自定义的缓存过期时间。步骤2:通过一定算法为处理好的数据生成一条主键key,用于唯一定位此数据在缓存中的位置。步骤3:根据上述的的主键key计算出分布式缓存服务器系统中需要存储的服务器地址id。所述主键key经过hash计算得到的哈希值与分布式缓存服务器的总数量进行求模,获得缓存服务器地址id。步骤4:将数据按照key/value的形式存入此id的服务器进行分布式存储。步骤5:业务需要读取数据时,先直接遍历缓存中的数据,如果可以获得结果,则请求成功。步骤6:如果缓存中无法获得所需数据,则通过数据库访问获得数据,并将结果按照上述方法存入缓存系统中,并且将此操作涉及的相关数据表按照上述步骤存入缓存系统,方便后续的访问请求处理。一种数据库分布式缓存系统,包括数据服务模块、缓存管理模块、缓存存储模块和数据库模块。数据服务模块:其用于解析上层请求,判断其中的数据访问请求,按照实际需要选择缓存或者数据库来进行处理。缓存存储模块:其用于分布式地存储、读取缓存数据。数据库模块:其用于持久化地存储业务相关数据,为缓存管理模块中的读取单元提供数据源。缓存管理模块:其用于缓存数据读取、存储的管理以及缓存存储服务器的维护管理。所述缓存管理模块包括:读取单元、数据预处理单元、写入单元和缓存服务器管理单元。读取单元:其用于执行数据库结构化查询语言sql,从数据库中读取相关数据。数据预处理单元:其用于执行服务端处理语言,对从读取单元接受到的数据进行预处理,剔除其中冗余的数据并且新增需要的数据。写入单元:其用于执行服务端处理语言,对数据处理单元返回的结果进行写入分布式缓存系统的操作。缓存服务器管理单元:其用于对写入单元的待写入数据按照算法分配缓存存储服务器,所述缓存存储服务器位于所述缓存存储模块,并且管理缓存存储服务器在分布式缓存系统中的添加和删除。具体实施说明如下:系统拦截到一条来自web或者移动终端的访问请求,判断该访问请求中是否包含数据的访问请求。如果没有,则转由其它业务代码处理;如果包含数据访问请求,则分析这一数据访问请求。当系统第一次收到数据访问请求时,缓存存储服务器中可能并没有存入相关缓存,因此将这一数据访问请求交给数据库进行处理。将从数据库获得的结果返回给web或移动终端,并且将这一结果交给缓存管理模块存入缓存服务器。另外记录这次数据库处理所涉及的数据表项,将这些表存储进缓存服务器。系统也可以预先将一些会被频繁访问的数据表项进行缓存。缓存数据表项时,首先缓存管本文档来自技高网...

【技术保护点】
1.一种数据库分布式缓存方法,其特征在于:该方法包括以下步骤:步骤1:预先取出数据库中可能会被访问的数据记录,按照预定义的缓存存储结构对数据进行处理;步骤2:通过一定算法为处理好的数据生成一条主键key,用于唯一定位此数据在缓存中的位置;步骤3:根据上述的主键key计算出分布式缓存服务器系统中需要存储的服务器地址id;步骤4:将数据按照key/value的形式存入此id的服务器进行分布式存储;步骤5:业务需要读取数据时,先直接遍历缓存中的数据,如果可以获得结果,则请求成功;步骤6:如果缓存中无法获得所需数据,则通过数据库访问获得数据,并将结果按照上述方法存入缓存系统中,并且将此操作涉及的相关数据表按照上述步骤存入缓存系统,方便后续的访问请求处理。

【技术特征摘要】
1.一种数据库分布式缓存方法,其特征在于:该方法包括以下步骤:步骤1:预先取出数据库中可能会被访问的数据记录,按照预定义的缓存存储结构对数据进行处理;步骤2:通过一定算法为处理好的数据生成一条主键key,用于唯一定位此数据在缓存中的位置;步骤3:根据上述的主键key计算出分布式缓存服务器系统中需要存储的服务器地址id;步骤4:将数据按照key/value的形式存入此id的服务器进行分布式存储;步骤5:业务需要读取数据时,先直接遍历缓存中的数据,如果可以获得结果,则请求成功;步骤6:如果缓存中无法获得所需数据,则通过数据库访问获得数据,并将结果按照上述方法存入缓存系统中,并且将此操作涉及的相关数据表按照上述步骤存入缓存系统,方便后续的访问请求处理。2.根据权利要求1所述的一种数据库分布式缓存方法,其特征在于:步骤1中,从数据库中读取的数据包括数据库名称、数据表名称、数据表中属性名称、数据库类型值和对应的记录值。3.根据权利要求1所述的一种数据库分布式缓存方法,其特征在于:步骤1中,处理过程中按照实际业务需求,可以将原数据中冗余的数据进行剔除,另外也可以新增需要的数据;处理后的数据至少包括属性名称和对应值组成的键/值对,以及自定义的缓存过期时间。4.根据权利要求1所述的一...

【专利技术属性】
技术研发人员:孙知信李敏磊骆冰清
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1