一种基于Redis的热点数据缓存方法和装置制造方法及图纸

技术编号:19934277 阅读:374 留言:0更新日期:2018-12-29 04:34
本发明专利技术提供了一种基于Redis的热点数据缓存方法:获取来自客户端的数据查询请求;在Redis缓存中查询是否存在所述数据查询请求的数据记录;若存在,则所述数据记录的权值自动增加,同时将所述数据记录的值返回给客户端;反之不存在,则查询数据库中是否存在所述数据记录;若数据库中存在,则将数据库中的所述数据记录复制到Redis缓存中,同时将所述数据记录的权值设为Redis缓存中所有数据记录权值的平均值;反之不存在,则在Redis缓存中新增一条数据记录,此时所述数据记录的值则设置为空值。如果Redis缓存超出最大值,会删掉权值最小的数据记录。通过本方法,既可以使Redis缓存中的数据都是高命中率数据,有效的提高了热点数据的查询速度,还可减少缓存空间的占用。

【技术实现步骤摘要】
一种基于Redis的热点数据缓存方法和装置
本专利技术涉及数据安全领域,尤其是涉及一种基于Redis的热点数据缓存方法和装置。
技术介绍
在分布式和微服务架构的系统中采用缓存机制可大大提高系统处理的效能及系统本身的数据吞吐规模,可以解决高并发请求以及大量数据的处理。所述缓存机制是通过将数据库中的数据加载到内存或者处理访问速度较快的存储介质中,并把这类数据长时间地保存,以减少数据库被访问的次数,进而减少数据库在大量的读取动作中I/O被长期占用造成的性能损耗。缓存机制虽能提供高效的查询速度和请求响应,但仍存在以下两个问题:①缓存中无法存储大量的数据,随着需求数据的不断变动,如果缓存中没有,就会去访问数据库查询,容易导致缓存穿透问题,甚至发生缓存雪崩;②存储在缓存中的数据并非全都是系统当前需要的数据,导致命中率低。Redis(RemoteDictionaryServer,远程数据服务)是一款内存高速缓存数据库,该软件使用C语言编写,数据模型为key-value,由于Redis可支持丰富的数据类型,如String、List、Hash、Set、SortedSet等,因此被广泛应用。目前现有技术本文档来自技高网...

【技术保护点】
1.一种基于Redis的热点数据缓存方法,其特征在于,所述方法包括以下步骤:获取来自客户端的数据查询请求;在Redis缓存中查询是否存在所述数据查询请求的数据记录;所述数据记录的数据结构为

【技术特征摘要】
1.一种基于Redis的热点数据缓存方法,其特征在于,所述方法包括以下步骤:获取来自客户端的数据查询请求;在Redis缓存中查询是否存在所述数据查询请求的数据记录;所述数据记录的数据结构为<标识,权值,值>,所述标识具有唯一性,所述数据查询请求基于所述标识进行;若Redis缓存中存在所述数据记录,则所述数据记录的权值自动增加,同时将所述数据记录的值返回给客户端;反之,若Redis缓存中不存在所述数据记录,则查询数据库中是否存在所述数据记录;若存在,则将数据库中的所述数据记录复制到Redis缓存中,同时将所述数据记录的权值设为Redis缓存中所有数据记录权值的平均值;若不存在,则在Redis缓存中新增一条数据记录,所述数据记录的标识设为所述数据查询请求中的所述标识,所述数据记录的权值设为Redis缓存中所有数据记录权值的平均值,所述数据记录的值则设置为空值。2.如权利要求1所述的热点数据缓存方法,其特征在于,还包括:需设置Redis缓存可存储数据记录的最大值。3.如权利要求1所述的热点数据缓存方法,其特征在于,在将数据库中的所述数据记录复制到Redis缓存前,或在Redis缓存中新增一条数据记录之前,还包括:检查Redis缓存中的数据记录是否达到最大值,若达到,则删除Redis缓存中权值最小的数据记录。4.如权利要求1所述的热点数据缓存方法,其特征在于,还包括:当Redis缓存中数据记录的值为空值时,需将所述数据记录写入消息队列,并通知消息队列异步处理,使Redis缓存与所述数据库保持同步。5.如权利要求2所述的热点数据缓存方法,其特征在于,还包括:可设置所述数据记录...

【专利技术属性】
技术研发人员:林皓王正林党艳平任思国冯艳
申请(专利权)人:北京北信源信息安全技术有限公司
类型:发明
国别省市:北京,11

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

1