[发明专利]一种数据缓存与同步方法在审
申请号: | 201611155893.2 | 申请日: | 2016-12-14 |
公开(公告)号: | CN106599199A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 郭宇;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广东莞信律师事务所44332 | 代理人: | 余伦 |
地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 缓存 同步 方法 | ||
技术领域
本发明涉及数据缓存与同步策略领域,尤其是一种基于Redis作为缓存容器根据查询语句匹配的数据缓存与同步方法。
背景技术
随着信息技术的快速发展,现代社会信息量呈爆炸式增长,在大数据时代的今天应用数据体积激增,传统的数据架构已经不能满足大型互联网应用的高并发、高可用、优质响应时间等需求。由此产生了一系列的例如NoSQL的解决方案,其中Redis作为其中优质的选择之一,渐渐被各大企业采用作为其数据架构的补充。然而传统的Redis架构缓存的局限性在于,当要处理基于业务逻辑的,类似于关系型数据库的条件查询时,由于其key-value数据库的本身属性,导致在数据结构的设计,以及查询方式的处理上,对实施者要求相对较高,步骤也相对繁琐,对其查询效率有较大影响。如何在保证高效查询的基础上,使得缓存实施更加简便成为大家关心的话题。
发明内容
本发明解决的技术问题在于提供一种基于Redis作为缓存容器根据查询语句匹配的数据缓存与同步方法,这种方法能够解决当前Redis缓存中,基于关系型条件查询相对繁琐的问题。
本发明解决上述技术问题的技术方案是:
所述的方法是以查询SQL语句的哈希值作为键,查询结果集为值,将其存储到内存数据库Redis中,通过一定的缓存确定与过时机制,来提高缓存的命中率;通过对查询对象结果集的有效性状态判断来保证数据的一致性。
所述的以查询SQL语句的哈希值作为键是每次后台请求数据时根据其对数据库查询的SQL语句,通过特定的字符串Hash值计算算法,生成对应的32位整数作为缓存对应的键,以String类型存放在Redis中。
所述的以查询SQL查询结果集作为值是将每次后台请求的查询结果集,通过序列化的方式以String类型作为缓存对应的值存放在Redis中。
所述的通过一定的缓存确定与过时机制,来提高缓存的命中率;并不把所有数据都进行缓存处理,仅仅把在短时间内即5分钟内重复执行同一查询语句三次以上的数据进行缓存;与此同时通过计时器来控制缓存的过期处理,在某些已经缓存了的数据中,如果有超过一小时还没有被再次访问的,则把它们从Redis中删除以释放有效的内存空间;而当缓存数据超过内存的百分之八十时,启用缓存淘汰机制将部分缓存删除,以免造成内存溢出。
所述的对查询对象结果集的有效性状态判断来保证数据的一致性,需要在Redis中维护一个Hash数据结构来存储所有结果集的有效信息,其结构为:键-(域-值);其中“键”是这个Hash结构的名称;“域”代表了数据库表名称或者数据实体名称;“值”是存在于缓存中,所有与“域”所在表相关的SQL查询语句的Hash值,多个值之间可用逗号分隔;每当数据有写操作发生时,都会由监视器去查询Redis中的有效信息Hash,把“域”等于涉及到的写操作数据库表名称旗下的所有“值”清空,并将以这些“值”为“键”的所有存在于Redis中的数据缓存删除。
所述方法的具体步骤为:
S1、搭建Redis服务:首先搭建Redis运行时环境,在官网下载Redis对应版本,在本地解压后,在该目录下运行Redis-cli可以打开客户端,输入ping命令,如果Redis返回pong回复,则说明Redis安装成功;
S2、创建缓存监视器:在Redis搭建完毕以后,创建一个缓存监视器来监视当前缓存的使用情况;缓存监视器的运行逻辑在于:监视器监视Redis中的缓存存放时间,每十分钟则检查所有有效信息存放Hash中的所有键所关联的最近读取时间,如果在最近一小时内都没有该数据的读取记录,则应该将其从缓存中删除,释放其占用的内存空间,同时更新有效信息Hash;当缓存的大小超过了缓存服务器上设置的最大内存的百分之八十时,启用缓存淘汰机制,缓存的淘汰机制可以使用最近最久未使用策略进行淘汰;
当后台对数据进行写操作时,则先对数据库进行写,然后把Redis的有效Hash中,对应的涉及到该对象所在表的“域”中,所有相关的“值”所代表的缓存键删除,并将其读取计数归零;整个过程需要事务支持,保证缓存有效信息的准确;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611155893.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置