CN100543750C - 一种基于web应用的矩阵式数据缓存方法及装置 - Google Patents
一种基于web应用的矩阵式数据缓存方法及装置 Download PDFInfo
- Publication number
- CN100543750C CN100543750C CNB2007101785502A CN200710178550A CN100543750C CN 100543750 C CN100543750 C CN 100543750C CN B2007101785502 A CNB2007101785502 A CN B2007101785502A CN 200710178550 A CN200710178550 A CN 200710178550A CN 100543750 C CN100543750 C CN 100543750C
- Authority
- CN
- China
- Prior art keywords
- data
- server
- caching
- frequency
- index
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于WEB应用的矩阵式数据缓存方法及装置。包括:设置一缓存服务器,对根据所述门户服务器的请求从数据库服务器读取的数据进行缓存;对所述缓存数据进行对象/关系映射,得到持久化数据;利用哈希表为所述持久化数据建立索引,形成矩阵式数据结构;所述缓存服务器根据所述索引提供数据访问接口。用低成本换取了高效率,减少WEB应用服务器和数据库服务器交互的通讯量,降低了磁盘I/O读写次数。数据是持久化的。丰富了数据查询的方式,同时利用这些索引为排序、统计等功能提供了非常灵活的接口和方法。
Description
技术领域
本发明涉及数据库数据的缓存,特别是涉及一种基于WEB应用的矩阵式数据缓存方法及装置。
背景技术
WEB应用程序为用户提供信息和服务,是整个网络的主体。WEB应用程序的数据响应及时性和可扩展性是评价它性能优劣的两个关键指标。及时性是指WEB服务器端响应客户端的速度;可扩展性是指随着并发使用用户的增多,WEB应用程序的性能不降低。
对于WEB服务器,随着并发用户的增多,WEB服务器访问数据库服务器的次数及数据量就会随之增加。但在数据库系统中,磁盘的I/O速度是限制系统处理速度的关键。这样就会出现当并发用户超过一定数量,读取磁盘的请求增多,读取的数据量大,则限于磁盘目前的I/O速度,WEB服务器的应用响应不及时,应用性能降低,甚至不能和数据库连接的现象。
故而,在磁盘的I/O速度保持一相对确定数值的前提下,如何提高数据存取速度,保证WEB程序的可扩展性都是亟待解决的问题。
发明内容
本发明提供了一种基于WEB应用的矩阵式数据缓存方法及装置,以解决直接访问数据库次数多,数据结构不合理,WEB应用性能差的问题。
为了实现上述目的,本发明提供了一种基于WEB应用的矩阵式数据缓存方法,用于包括门户服务器以及数据库服务器的WEB应用系统,包括:
步骤一,设置一缓存服务器,对根据所述门户服务器的请求从数据库服务器读取的数据进行缓存;
步骤二,对所述缓存数据进行对象/关系映射,得到持久化数据;
步骤三,利用哈希表为所述持久化数据建立索引,形成矩阵式数据结构;
步骤四,所述缓存服务器根据所述索引提供数据访问接口。
所述步骤一进一步包括:所述缓存服务器设置有一频率阈值以及一容量阈值,对从数据库服务器读取的数据的读取频率以及数据量进行监测,对于读取频率高于所述频率阈值,数据量低于所述容量阈值的数据进行缓存。
所述步骤二进一步包括:所述对象/关系映射利用hibernate框架或者ibatis框架实现。
所述步骤三进一步包括:将所述持久化数据作为哈希函数的哈希值,利用哈希函数建立哈希值与存储位置的对应关系。
所述步骤三与步骤四之间还包括:所述缓存服务器设置有一删除频率或者一时长阈值,删除读取频率低于所述删除频率,或者上次被读取距当前超过所述时长阈值的缓存数据。
所述步骤三与步骤四之间还包括:所述缓存服务器根据手动或者定时的方式,扫描所述缓存数据是否与所述数据库服务器对应的数据保持一致,将所述数据库服务器中发生变化的数据更新至所述缓存服务器中。
本发明还公开了一种基于WEB应用的矩阵式数据缓存装置,用于包括门户服务器以及数据库服务器的WEB应用系统,并与所述门户服务器连接,包括:
缓存读取模块,用于对根据所述门户服务器的请求,从所述数据库服务器中读取的数据进行缓存;
映射模块,用于对所述数据进行对象/关系映射,得到持久化数据;
矩阵式数据结构建立模块,用于利用哈希表为所述持久化数据建立索引,形成矩阵式数据结构;
访问模块,用于根据所述索引提供数据访问接口。
所述缓存读取模块中设置有一频率阈值以及一容量阈值,所述缓存数据的被读取频率高于所述频率阈值,所述缓存数据的数据量低于所述容量阈值。
所述映射模块利用hibernate框架或者ibatis框架实现对象/关系映射。
所述矩阵式数据结构建立模块将所述持久化数据作为哈希函数的哈希值,利用哈希函数建立哈希值与存储位置的对应关系。
本发明的效果在于,用低成本换取了高效率,减少WEB应用服务器和数据库服务器交互的通讯量,降低了磁盘I/O读写次数。同时,数据是持久化的。WEB应用程序一般都是采用面向对象的思想进行开发部署的,矩阵式数据缓存技术将数据库中的数据转换成持久化的数据对象,方便了WEB应用程序的使用。数据结构是矩阵式的,在几乎没有增加内存资源使用的情况下,丰富了数据查询的方式,同时利用这些索引为排序、统计等功能提供了非常灵活的接口和方法。
附图说明
图1所示为WEB应用系统的结构示意图;
图2所示为WEB应用系统中的门户服务器的结构示意图;
图3A、3B所示为本申请操作处理流程示意图。
具体实施方式
以下配合实施例以及附图,详细描述本发明的技术特征。
本发明针对WEB应用中在并发用户数量较大情况下存在的诸多问题,提供了一种基于WEB应用的矩阵式缓存方法及装置,提高了数据读取速度,同时使WEB应用更加丰富高效。本发明的矩阵式数据缓存方法,即是利用缓冲器以索引方式保存网页中持久化数据的方法。
请参阅图1所示为WEB应用系统的结构示意图。
WEB应用系统100采用浏览器/服务器(B/S)架构,有线用户终端101或者无线用户终端102通过相应的接入设备连接到Internet。在服务器端,包括门户服务器103、数据库服务器104以及缓存服务器105。门户服务器103基于WEB、WAP等技术为用户终端提供媒体导航、信息查询等功能。用户终端一般通过WEB、WAP等浏览器访问WEB应用系统的导航网页,找到感兴趣的内容,体验WEB应用系统提供的业务及实现对WEB应用系统数据库服务器的数据的读取。门户服务器103与缓存服务器105分别设立,也可融为一体,以降低系统的复杂程度。
请参阅图2所示为门户服务器103与缓存服务器105部署在一起的实施例中,门户服务器的结构示意图。
在门户服务器103内部除现有技术中已知的其他必要部件外,还包括一缓存器11。该缓存器11是存储数据库查询结果或任何临时对象的内部快速存储器,可例如为一内存,该内存的数量可根据需要设置。该缓存器11进一步包括:缓存读取模块111、映射模块112、矩阵式数据结构建立模块113以及访问模块114。
缓存读取模块111,用于对根据所述门户服务器的请求,从所述数据库服务器中读取的数据进行缓存;映射模块112,用于对所述数据进行对象/关系映射,得到持久化数据;矩阵式数据结构建立模块113,用于利用哈希表为所述持久化数据建立索引,形成矩阵式数据结构;访问模块114,用于根据所述索引提供数据访问接口。
利用该缓存器11,本发明将公开一种基于WEB应用的矩阵式数据缓存方法。
当用户终端向门户网站发起操作请求,门户服务器103接收到该请求需根据该请求实时对数据库服务器104中的数据进行读取。
在本申请中,缓存器11对门户服务器103从数据库服务器104中读取的数据进行缓存。即,将用户请求调用的数据库表缓存在缓存器中,并在其中查询所需要的具体数据。
在该缓存器启动并初始化后,需对缓存器中存储的数据进行管理。该缓存器的缓存读取模块111中预先设置有缓存配置策略、缓存删除策略、缓存更新策略,缓存器将根据上述规则以执行对缓存数据的增加、删除和更新。
其中,缓存配置策略用于增加数据库表至缓存器中,缓存配置策略包括数据库表频率配置和数据大小配置等。
数据库表频率配置规定了一使用频率阈值f,对被调用频率高于该阈值f的数据进行缓存,即,缓存器监测数据库表使用频率,对频繁被调用、数据处理复杂的数据库表进行缓存处理,而对于使用频率小,没有复杂数据处理要求的数据库表不进行缓存处理,以节约缓存空间,防止占用过多的资源。
数据大小配置规定了一容量值v,对高于该容量值v的数据库表不进行缓存,即,超过该容量值的数据库表将直接从数据库服务器读取,节约缓存空间以快速存取更多的数据。
本发明中,利用数据库表频率配置和数据大小配置,可将网页中经常用到,用户发起的请求中频繁调用的且数据量大小适中的数据库表通过对数据库服务器104的一次I/O操作,读取至缓存器11中。当后续用户发起对所述数据库表的调用请求时,直接从缓存器11中读取,而无需重复进行数据库服务器104的I/O操作。
缓存器启动后,缓存读取模块111将根据该缓存配置策略中配置的参数,将需要的数据库表读入缓存器。
缓存删除策略采用的是最近最少使用(Least Recently Used,LRU)原则,也就是说,该缓存删除策略对应设置有一使用频率的底限或者是上次使用距现在的时长限制。缓存器监测数据使用频率,对于使用频率低、上次使用距现在已超过时长限制的数据库表,将进行删除,并根据缓存配置策略读入其他数据。
缓存更新策略用于保持缓存器与数据库服务器的同步。其包括有定时同步与手动同步两种方式。定时同步方式是缓存器的缓存读取模块111启动一定时更新服务程序,定时扫描缓存器中的数据库表是否与数据库服务器的对应数据库表保持一致。对于数据库服务器中发生变化的数据库表,将数据库服务器中的数据更新至缓存器中。手动同步需要缓存器提供数据更新接口,当数据库服务器中的数据库表发生变化时,调用这个数据更新接口,将更新的结果反馈到缓存器中。
如图3A、3B所示为本申请操作处理流程示意图。
步骤301,门户服务器实时更新数据库服务器中的数据,完成数据的增加、删除、修改;
步骤302,启动并初始化缓存器;
步骤303,缓存读取模块111根据缓存配置策略对数据进行缓存;
步骤304,映射模块112对缓存数据进行对象/关系映射得到持久化数据;
目前,关系数据库仍然是使用最广泛的数据存储库。关系数据库中存放的是关系型数据,它是非面向对象的。而对象型的数据结构将为WEB信息系统带来更为灵活的接口和应用方式。
本发明利用现有技术中的ORM(Object Relational Mapping,对象/关系映射)框架,将缓存的关系型数据映射成为对象型数据。也就是,通过使用描述对象和关系数据之间映射的元数据,转换数据的形式,使关系数据以对象的形式表示出来。并通过面向对象(Object-Oriented)的方式将这些对象组织起来。将缓存数据转换为持久化数据。所述ORM框架可例如为hibernate框架或着ibatis框架。
步骤305,矩阵式数据结构建立模块113利用哈希表对持久化数据建立索引,形成持久化访问机制,建立矩阵式数据结构;
对于该持久化数据,利用哈希表对持久化数据建立多种索引,从而建立矩阵式数据结构,便于用户的多种查询方式。
将所述持久化数据作为哈希函数的哈希值,利用哈希函数建立哈希值与存储位置的对应关系,从而对持久化数据建立索引,形成矩阵式数据结构。所述存储位置例如为一多维数组的下标。可利用多种哈希函数建立多种索引。当进行查询或者检索时,可利用该索引,确定存储位置,进而快速定位。
步骤306,访问模块114根据不同的索引提供数据访问接口;
用户终端对于数据的需求是多种多样的,可能是包括各种索引的排序、统计等。访问模块114根据各个索引封装访问缓存数据的接口,使得用户可根据需求,直接查询缓存数据,并将符合条件的数据返回给用户终端。
而矩阵式数据结构为门户服务器进行多种形式数据的展现、报表数据的统计提供了较为灵活的接口和方法。
步骤307,用户终端利用所述数据访问接口,访问缓存器中的数据。
在本发明的另一较佳实施例中,步骤305与步骤306之间还可包括:
步骤3051,根据缓存删除策略、缓存更新策略以及缓存配置策略判断当前所需进行的操作,如果是删除,执行步骤3052,如果是更新,执行步骤3053,如果是再次读取,执行步骤3054;
步骤3052,对于需要删除的数据,利用已经建立的索引,查找其存储位置,对其进行删除,并删除其对应的索引,执行步骤306;
步骤3053,对于需要更新的数据,利用已经建立的索引,查找其存储位置,对其进行更新,执行步骤304;
步骤3054,对于需要再次读取的数据,根据缓存配置策略,判断所欲读取的数据是否符合数据库表频率配置以及数据大小配置,如果是,读取该数据至缓存器,并执行步骤304,如果不是,执行步骤306。
与传统的web应用服务器直接访问数据库相比,矩阵式数据缓存技术具有以下优点:
1、低成本换取高效率。只需要增加缓存服务器的内存,而不需要增加计算机的数量。
2、减少web应用服务器和数据库服务器交互的通讯量,即利用该缓存服务器可减少在进程和机器间的传输量。
3、降低磁盘I/O读写次数。
4、数据是持久化的。WEB应用程序一般都是采用面向对象的思想进行开发部署的,矩阵式数据缓存技术将数据库中的数据转换成持久化的数据对象,方便了WEB应用程序的使用。
5、数据结构是矩阵式的。采用哈希表的方法为持久化的数据对象建立不同的索引,形成矩阵式的数据结构,在几乎没有增加内存资源使用的情况下,丰富了数据查询的方式,同时利用这些索引为排序、统计等功能提供了非常灵活的接口和方法。
可见,本发明采用以空间换取时间的方式,提高数据响应的及时性和web应用程序的可扩展性。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权力要求的保护范围。
Claims (8)
1、一种基于WEB应用的矩阵式数据缓存方法,用于包括门户服务器以及数据库服务器的WEB应用系统,其特征在于,包括:
步骤一,设置一缓存服务器,对根据所述门户服务器的请求从数据库服务器读取的数据进行缓存;
步骤二,对所述缓存数据进行对象/关系映射,得到持久化数据;
步骤三,将所述持久化数据作为哈希函数的哈希值,利用哈希函数建立哈希值与存储位置的对应关系,从而对所述持久化数据建立索引,形成矩阵式数据结构;
步骤四,所述缓存服务器根据所述索引提供数据访问接口。
2、如权利要求1所述的方法,其特征在于,所述步骤一进一步包括:
所述缓存服务器设置有一频率阈值以及一容量阈值,对从数据库服务器读取的数据的读取频率以及数据量进行监测,对于读取频率高于所述频率阈值,数据量低于所述容量阈值的数据进行缓存。
3、如权利要求1所述的方法,其特征在于,所述步骤二进一步包括:
所述对象/关系映射利用hibernate框架或者ibatis框架实现。
4、如权利要求1、2或3所述的方法,其特征在于,所述步骤三与步骤四之间还包括:
所述缓存服务器设置有一删除频率或者一时长阈值,删除从所述缓存服务器中读取数据的读取频率低于所述删除频率,或者上次被读取距当前超过所述时长阈值的缓存数据。
5、如权利要求1、2或3所述的方法,其特征在于,所述步骤三与步骤四之间还包括:
所述缓存服务器根据手动或者定时的方式,扫描所述缓存数据是否与所述数据库服务器对应的数据保持一致,将所述数据库服务器中发生变化的数据更新至所述缓存服务器中。
6、一种基于WEB应用的矩阵式数据缓存装置,用于包括门户服务器以及数据库服务器的WEB应用系统,并与所述门户服务器连接,其特征在于,包括:
缓存读取模块,用于对根据所述门户服务器的请求,从所述数据库服务器中读取的数据进行缓存;
映射模块,用于对所述数据进行对象/关系映射,得到持久化数据;
矩阵式数据结构建立模块,将所述持久化数据作为哈希函数的哈希值,利用哈希函数建立哈希值与存储位置的对应关系,从而对所述持久化数据建立索引,形成矩阵式数据结构;
访问模块,用于根据所述索引提供数据访问接口。
7、如权利要求6所述的装置,其特征在于,
所述缓存读取模块中设置有一频率阈值以及一容量阈值,所述缓存数据的被读取频率高于所述频率阈值,所述缓存数据的数据量低于所述容量阈值。
8、如权利要求6所述的装置,其特征在于,所述映射模块利用hibernate框架或者ibatis框架实现对象/关系映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101785502A CN100543750C (zh) | 2007-11-30 | 2007-11-30 | 一种基于web应用的矩阵式数据缓存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101785502A CN100543750C (zh) | 2007-11-30 | 2007-11-30 | 一种基于web应用的矩阵式数据缓存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101169790A CN101169790A (zh) | 2008-04-30 |
CN100543750C true CN100543750C (zh) | 2009-09-23 |
Family
ID=39390416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101785502A Expired - Fee Related CN100543750C (zh) | 2007-11-30 | 2007-11-30 | 一种基于web应用的矩阵式数据缓存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100543750C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075306A1 (zh) * | 2011-11-24 | 2013-05-30 | 华为技术有限公司 | 数据访问方法和装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937467A (zh) * | 2010-09-17 | 2011-01-05 | 北京开心人信息技术有限公司 | 一种服务器的高效缓存方法与系统 |
CN102333108A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 分布式缓存同步系统及方法 |
CN102790683A (zh) * | 2011-05-16 | 2012-11-21 | 北大方正集团有限公司 | 一种实时行情数据处理方法、服务器及系统 |
CN103810189B (zh) * | 2012-11-08 | 2018-06-05 | 腾讯科技(深圳)有限公司 | 一种热点消息处理方法及系统 |
CN103617131B (zh) * | 2013-11-26 | 2017-02-22 | 曙光信息产业股份有限公司 | 一种实现数据缓存的方法 |
CN105183532B (zh) * | 2014-04-29 | 2019-02-26 | 哈尔滨工程大学 | 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法 |
CN104035809B (zh) * | 2014-04-29 | 2017-11-17 | 哈尔滨工程大学 | 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法 |
US10997170B2 (en) | 2014-07-25 | 2021-05-04 | Hewlett Packard Enterprise Development Lp | Local database cache |
CN104217004B (zh) * | 2014-09-15 | 2017-10-13 | 中国工商银行股份有限公司 | 一种交易系统的数据库热点的监控方法及装置 |
CN104484186A (zh) * | 2014-12-31 | 2015-04-01 | 天津南大通用数据技术股份有限公司 | 一种基于web前端的数据分析的设计方法 |
CN105357306B (zh) * | 2015-11-17 | 2019-06-11 | 贵阳朗玛信息技术股份有限公司 | 多平台数据共享系统及其数据共享方法 |
CN106060115A (zh) * | 2016-05-12 | 2016-10-26 | 广西尊达电子商务有限公司 | 一种基于多web服务器的服务器系统 |
CN110232145A (zh) * | 2017-10-31 | 2019-09-13 | 中移(苏州)软件技术有限公司 | 一种数据快速访问方法、装置及系统 |
CN110019221B (zh) * | 2017-12-18 | 2022-07-19 | 本无链科技(深圳)有限公司 | 一种内存映像型数据库系统 |
CN109714629A (zh) * | 2019-01-30 | 2019-05-03 | 南华大学 | 一种定格动画的生成方法和生成系统 |
CN111506572A (zh) * | 2020-03-16 | 2020-08-07 | 北京物资学院 | 一种数据库智能预缓冲方法及装置 |
CN111694559B (zh) * | 2020-05-21 | 2023-07-21 | 北京云杉世纪网络科技有限公司 | Gc程序语言中哈希表的实现方法及装置 |
-
2007
- 2007-11-30 CN CNB2007101785502A patent/CN100543750C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075306A1 (zh) * | 2011-11-24 | 2013-05-30 | 华为技术有限公司 | 数据访问方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101169790A (zh) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100543750C (zh) | 一种基于web应用的矩阵式数据缓存方法及装置 | |
CN101510209B (zh) | 实现实时检索的方法、系统和服务器 | |
CN101493826B (zh) | 基于web应用的数据库系统及其数据管理方法 | |
CN104679898A (zh) | 一种大数据访问方法 | |
JP2003006036A (ja) | クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム | |
CN100437590C (zh) | 预取对象的方法 | |
CN101853287A (zh) | 数据压缩快速检索文件系统及其方法 | |
CN108920616A (zh) | 一种元数据访问性能优化方法、系统、装置及存储介质 | |
CN104331428A (zh) | 一种小文件和大文件的存储及访问方法 | |
CN103020175B (zh) | 一种获取聚合数据的方法和装置 | |
CN104750715A (zh) | 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 | |
CN102546674A (zh) | 一种基于网络存储装置的目录树缓存系统及方法 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存系统 | |
CN113037851B (zh) | 一种基于存储实现的针对云手机系统超分的方法 | |
CN107133183A (zh) | 一种基于tcmu虚拟块设备的缓存数据访问方法及系统 | |
CN113836162A (zh) | 一种业务解耦并实现多级缓存的自动化更新的方法及装置 | |
CN107391555B (zh) | 一种面向Spark-Sql检索的元数据实时更新方法 | |
CN101136765A (zh) | 一种快速访问信息模型的方法 | |
CN103761255A (zh) | NoSQL方式数据存储的优化方法及系统 | |
CN110413724A (zh) | 一种数据检索方法和装置 | |
CN110362505A (zh) | 一种使用缓存拦截器进行读写缓存的方法 | |
CN108021674A (zh) | 一种同步云端仿真数据的多级缓存传输加速系统 | |
CN110109956B (zh) | 一种防止缓存穿透的方法及终端 | |
CN103136278A (zh) | 一种读取数据的方法及装置 | |
CN110209343B (zh) | 数据存储方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090923 Termination date: 20171130 |