[发明专利]一种数据缓存系统和数据查询方法无效
申请号: | 201010042737.1 | 申请日: | 2010-01-11 |
公开(公告)号: | CN102122285A | 公开(公告)日: | 2011-07-13 |
发明(设计)人: | 李升林;王迎锋;林伟军;邓福喜;吕秋明;张宗元;廖炳才;樊小彬;柳江;肖伟;刘志尧 | 申请(专利权)人: | 卓望数码技术(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 李琴 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 缓存 系统 查询 方法 | ||
技术领域
本发明涉及缓存技术,更具体地说,涉及一种数据缓存系统和数据查询方法。
背景技术
为减轻数据库服务器的访问压力,大多数数据库服务器都设置有数据缓存系统。这种数据缓存系统的作用是临时存储用户经常访问的数据。如此一来,当用户再次访问已经进行了临时存储的数据时便可直接返回该数据,而无需再从数据库服务器中获取该数据,由此降低数据库服务器的负担。
目前最为常用的一种网络数据缓存系统为Memcached系统。Memcached系统是一种分布式内存缓存系统,其采用Client/Server(客户端/服务器)结构,基于socket进行通信。Memcached系统采用键(key)、值(value)方式进行数据的缓存,不存在逻辑表的概念,所有数据均共享同一存储空间。Memcached系统使用进程内存来存储缓存的数据,如此一来,当Memcached系统的关键进程发生异常导致Memcached系统重启时,通过Memcached系统缓存的数据将会丢失。此外,Memcached没有数据表的概念,所有缓存数据共享同一存储空间,缺少逻辑上的划分,不便于数据的管理和使用。此外,Memcached系统不支持多索引,因此若希望为同一数据记录设置多个索引,则需要为该数据记录准备多个副本,存储空间浪费严重。
因此,需要一种数据缓存系统,能够有效克服现有Memcached系统存在的上述缺陷。
发明内容
本发明要解决的技术问题在于,针对现有Memcached系统不支持多索引等缺陷,提供一种数据缓存系统和数据查询方法。
本发明解决其技术问题所采用的技术方案是:
构造一种数据缓存系统,包括:
虚拟存储模块,设置在共享内存中,包括元数据区和表数据区,所述元数据区中存储有元数据表,所述表数据区中设置有索引区和记录区,所述索引区中存储有至少一个散列索引链表,每一散列索引链表包含至少一个子链表,所述记录区中存储有至少一条数据记录;
转发模块,用于接收搜索请求并判断其所属类型,然后依据该搜索请求的类型转发该搜索请求;
散列搜索模块,用于:
接收转发模块转发的单值搜索类型的搜索请求,提取其中包含的关键字,依据该关键字的类型在元数据表中查找对应的索引信息,并依据该索引信息在索引区中查找对应的散列索引链表;
对关键字进行散列计算并依据找到的散列索引链表中子链表的数量对散列计算结果进行取余计算,在所述散列索引链表中查找取余计算结果对应的子链表;
依据所述散列计算结果在所述子链表中查找匹配的索引;
依据所述索引在记录区中查找匹配的数据记录并返回。
在本发明提供的数据缓存系统中,所述索引区中还存储有至少一个T型索引树,所述系统还包括:
T树搜索模块,用于:
接收转发模块转发的范围搜索类型的搜索请求,提取其中包含的搜索范围;
依据所述搜索范围对应的类型在元数据表中查找对应的索引信息,并依据该索引信息在索引区中查找对应的T型索引树;
依据所述搜索范围的上边界值和下边界值在T型索引树中查找匹配的索引;
依据找到的索引在记录区中查找匹配的数据记录并返回。
在本发明提供的数据缓存系统中,还包括:
初始化模块,用于在启动时读取配置文件,据此基于共享内存创建所述虚拟存储模块。
在本发明提供的数据缓存系统中,所述配置文件采用XML格式。
在本发明提供的数据缓存系统中,所述散列计算为CRC 32计算。
本发明还提供了一种数据查询方法,用于在设置在共享内存中的虚拟存储模块中查找对应的数据记录,其中,所述虚拟存储模块包括元数据区和表数据区,所述元数据区中存储有元数据表,所述表数据区中设置有索引区和记录区,所述索引区中存储有至少一个散列索引链表,每一散列索引链表包含至少一个子链表,所述记录区中存储有至少一条数据记录,所述方法包括:
转发步骤,包括接收搜索请求并判断其所属类型,然后依据该搜索请求的类型转发该搜索请求;
散列搜索步骤,包括:
接收转发的单值搜索类型的搜索请求,提取其中包含的关键字,依据该关键字的类型在元数据表中查找对应的索引信息,并依据该索引信息在索引区中查找对应的散列索引链表;
对关键字进行散列计算并依据找到的散列索引链表中子链表的数量对散列计算结果进行取余计算,在所述散列索引链表中查找取余计算结果对应的子链表;
依据所述散列计算结果在所述子链表中查找匹配的索引;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卓望数码技术(深圳)有限公司,未经卓望数码技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010042737.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置