一种高性能的内存缓存系统及方法

文档序号:8258845阅读:163来源:国知局
一种高性能的内存缓存系统及方法
【技术领域】
[0001 ] 本发明涉及数据的存储技术,具体涉及数据的缓存技术。
【背景技术】
[0002]随着计算机技术的飞速发展,信息化的浪潮席卷全球,作为企事业单位自建应用系统越来越多,作为涉及从数据库或文件读取数据的应用系统,会因业务需求,从数据库或文件中读取数据会增加I/o操作,读取数据的速率低;特别在高并发的情况下:
[0003]对于数据库,在上百个并发连接下,会因为连接不够用,数据库系统响应缓慢原因,致使应用系统运行缓慢,甚至出现应用服务器崩溃现象;
[0004]对于文件,会因为读取文件数据,产生大量I/O操作,致使应用系统运行缓慢,甚至出现应用服务器崩溃现象。
[0005]综上所述,如何提高应用系统读取数据的效率是本领域亟需要解决的技术问题。

【发明内容】

[0006]针对上述现有应用系统因从磁盘中读取数据,导致读取数据速率降低,系统运行缓慢甚至应用服务器崩溃问题,本发明的目的在于提供了一种能够大大提高应用系统读取数据效率的高性能的内存缓存机制。
[0007]为了实现上述机制,本发明提供如下两种技术方案:
[0008]方案1: 一种高性能的内存缓存系统,该内存缓存系统包括:
[0009]数据加载模块,所述数据加载模块将磁盘数据读入内存中;
[0010]数据转换模块,所述数据转换模块将读入到内存中的数据转换为KEY-VALUE格式的数据;
[0011]数据校验模块,所述数据校验模块对转换为KEY-VALUE格式数据进行唯一性校验;
[0012]数据存储模块,所述数据存储模块将转换为KEY-VALUE格式且经过数据校验模块校验过的数据存储到内存中;
[0013]数据检索模块;所述数据检索模块向应用系统提供用于检索内存中存储数据的数据检索方式。
[0014]在该系统的优选方案中,所述磁盘数据包括文件、数据库。
[0015]进一步的,所述数据校验模块对转换为KEY-VALUE格式数据进行唯一性校验时,若内存中存在该数据,则丢弃该数据,不再保存该数据到内存中。
[0016]方案2:在方案I提供系统的基础上实施的一种高性能的内存缓存方法,该方法包括如下步骤:
[0017](I)数据加载,将磁盘数据读入到内存中;
[0018](2)数据转换,将加载到内存中的磁盘数据,转换为KEY-VALUE格式的数据;
[0019](3)数据校验,对步骤(2)中转换后的KEY-VALUE格式数据进行唯一性校验,若内存中已存在该数据,则丢弃,不再重复保存该数据到内存中;否则继续(4);
[0020](4)数据存储,将经过步骤(3)检验后的KEY-VALUE格式数据存储在内存中;
[0021](5)数据检索,应用系统调用内存缓存系统的数据检索功能,对内存中存储的KEY-VALUE格式数据进行检索和调用。
[0022]在该方法的优选方案中,所述步骤(I)在应用系统启动时或首次访问内存数据时执行数据加载,且仅执行一次。
[0023]进一步的,所述步骤(5)中通过主键进行检索。
[0024]进一步的,所述步骤(5)中进行条件检索。
[0025]综合上述,本发明具有以下有点:
[0026]1.数据读取时,无需创建连接。
[0027]2.数据读取时,无需与磁盘产生I/O操作。
[0028]3.内存是CPU能直接寻址的存储空间,读取速率快。
[0029]4.内存中的数据以KEY-VALUE格式存储,具有查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,支持条件检索。
【附图说明】
[0030]以下结合附图和【具体实施方式】来进一步说明本发明。
[0031]图1为本发明中高性能的内存缓存系统的原理框图;
[0032]图2为本发明中高性能的内存缓存方法的实现流程图。
【具体实施方式】
[0033]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0034]本发明提供的高性能的内存缓存机制,基于相对于磁盘数据的读取,内存数据的读取速度要高出几个数量级的原理,将磁盘数据加载到内存中;同时内存中的数据按照KEY-VALUE格式存储,减少了数据冗余,提高了检索数据的命中率,减少了应用系统访问磁盘的次数,减少I/o操作次数,继而缩短了应用系统业务响应时间,提高了应用系统的性會K。
[0035]基于上述原理,本发明提供的高性能的内存缓存系统10,主要由数据加载模块11,数据转换模块12,数据校验模块13,数据存储模块14,数据检索模块15相互配合完成(如图1所示)。
[0036]其中,数据加载模块11,其用于将磁盘数据读入内存中。该模块在应用系统启动时或首次访问内存数据时执行,且仅执行一次。其中磁盘数据包括保存在文件中的数据、数据库中的数据,但不仅限于文件中的数据,数据库的数据,根据需要也可将其它磁盘数据读入到内存中。
[0037]数据转换模块12,将由数据加载模块11读入到内存中的磁盘数据转换为符合一定格式的数据,如KEY-VALUE格式数据。
[0038]数据校验模块13,对内存中由数据转换模块12转换成KEY-VALUE格式的数据进行唯一性校验,若内存中存在该数据,则丢弃该数据,不再保存该数据到内存中,减少内存中数据的冗余。
[0039]数据存储模块14,将经过数据校验模块13校验的转换为KEY-VALUE格式的数据,以KEY-VALUE格式存储到内存中。
[0040]数据检索模块15,用于检索内存中存储的数据,该模块面向面向应用系统,并由其调用的,方便应用系统对内存中存储的数据进行检索和调用。
[0041]由于内存中的数据以KEY-VALUE格式存储,应用系统调用数据检索模块15直接进行KEY-VALUE格式的数据检索,具有查询速度快、存放数据量大、支持高并发等特点。为此,该模块支持通过主键进行检索,同时该模块还支持条件检索。
[0042]以下通过一应用实例,来实现说明上述方案构成的高性能的内存缓存系统来实现应用系统高速读取数据的过程。
[0043]应用系统利用上述高性能的内存缓存系统来高速读取数据时,首先在相应的应用系统中安装高性能的内存缓存系统。由此,该应用系统读取数据的过程如下(参见图2):
[0044]步骤101,应用系统启动时,数据加载模块将磁盘数据读取到内存中。在应用系统中,该步骤也可以是在应用系统首次访问内存数据数据时执行,且仅需要执行一次,其中磁盘数据包括保存在文件中的数据、数据库中的数据。
[0045]步骤102,在完成数据读取后,数据转换模块将读到内存中的数据进行转换,将所有读入的磁盘数据转换为内存中的KYE-VALUE数据格式。
[0046]步骤103,在完成数据格式的转换后,数据校验模块对转换后的KEY-VALUE数据做一定的唯一性校验,若内存中已存在该数据,则丢弃,不再继续保存到内存中,较少内存中数据的冗余,否则继续步骤104。
[0047]步骤104,由数据存储模块将步骤(3)中经数据校验模块检验通过的KEY-VALUE数据,以KEY-VALUE格式保存到内存中,由此已经完成了内存数据的构造。
[0048]步骤105,若应用系统需要访问相应数据时,调用数据检索模块,以主键检索或条件检索的方式,对内存中存储的KEY-VALUE格式数据进行检索,完成数据高速读取。
[0049]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【主权项】
1.一种高性能的内存缓存系统,其特征在于,所述内存缓存系统包括: 数据加载模块,所述数据加载模块将磁盘数据读入内存中; 数据转换模块,所述数据转换模块将读入到内存中的数据转换为KEY-VALUE格式的数据; 数据校验模块,所述数据校验模块对转换为KEY-VALUE格式数据进行唯一性校验; 数据存储模块,所述数据存储模块将转换为KEY-VALUE格式且经过数据校验模块校验过的数据存储到内存中; 数据检索模块;所述数据检索模块向应用系统提供用于检索内存中存储数据的数据检索方式。
2.根据权利要求1所述的一种高性能的内存缓存系统,其特征在于,所述磁盘数据包括文件、数据库。
3.根据权利要求1所述的一种高性能的内存缓存系统,其特征在于,所述数据校验模块对转换为KEY-VALUE格式数据进行唯一性校验时,若内存中存在该数据,则丢弃该数据,不再保存该数据到内存中。
4.一种高性能的内存缓存方法,其特征在于,所述方法包括如下步骤: (1)数据加载,将磁盘数据读入到内存中; (2)数据转换,将加载到内存中的磁盘数据,转换为KEY-VALUE格式的数据; (3)数据校验,对步骤(2)中转换后的KEY-VALUE格式数据进行唯一性校验,若内存中已存在该数据,则丢弃,不再重复保存该数据到内存中;否则继续(4); (4)数据存储,将经过步骤(3)检验后的KEY-VALUE格式数据存储在内存中; (5)数据检索,应用系统调用内存缓存系统的数据检索功能,对内存中存储的KEY-VALUE格式数据进行检索和调用。
5.根据权利要求4所述的一种高性能的内存缓存方法,其特征在于,所述步骤(I)在应用系统启动时或首次访问内存数据时执行数据加载,且仅执行一次。
6.根据权利要求4所述的一种高性能的内存缓存方法,其特征在于,所述步骤(5)中通过主键进行检索。
7.根据权利要求4所述的一种高性能的内存缓存方法,其特征在于,所述步骤(5)中进行条件检索。
【专利摘要】本发明公开了一种高性能的内存缓存系统及方法,该方案基于数据加载模块,数据转换模块,数据校验模块,数据存储模块,数据检索模块来实现,通过将磁盘数据转换为KEY-VALUE格式,存储在内存中,减少数据的冗余,提高了检索数据的命中率,减少了应用系统访问磁盘的次数,减少I/O操作次数,相对于磁盘数据的读取,内存数据的读取速度要高出几个数量级,缩短了应用系统业务响应时间,从而提高了应用系统的性能。
【IPC分类】G06F17-30
【公开号】CN104572973
【申请号】CN201410854596
【发明人】孙钊, 许俊
【申请人】上海格尔软件股份有限公司
【公开日】2015年4月29日
【申请日】2014年12月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1