[发明专利]一种防止缓存穿透方法及装置、计算机可读存储介质有效
申请号: | 201710372299.7 | 申请日: | 2017-05-23 |
公开(公告)号: | CN107124466B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 程文星 | 申请(专利权)人: | 努比亚技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 深圳协成知识产权代理事务所(普通合伙) 44458 | 代理人: | 章小燕 |
地址: | 518000 广东省深圳市南山区高新区北环大道9018*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 缓存 穿透 方法 装置 计算机 可读 存储 介质 | ||
本发明公开了一种防止缓存穿透方法及装置、计算机可读存储介质,该方法包括步骤:客户端向服务器端请求缓存信息,其中请求包括键值;服务器端接收请求,根据键值到服务器端缓存系统中获取缓存值;判断获取的缓存值是否为空值;若获取的缓存值不为空值,则判断获取的缓存值是否为空默认值;若获取的缓存值为空默认值,则将空默认值转换为空数据返回给客户端。本发明公开的防止缓存穿透方法及装置、计算机可读存储介质,通过新增空值存储,防止恶意攻击,降低对服务器端系统数据库造成的影响;使用主备缓存,预防键值失效情况下造成数据穿透;使用服务器端缓存系统的写命令,保证数据刷新时不会同时请求服务器端系统数据库。
技术领域
本发明涉及通信技术领域,尤其涉及一种防止缓存穿透方法及装置、计算机可读存储介质。
背景技术
一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如数据库)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统带来很大压力。
因此针对缓存穿透现象,需要提供一种行之有效地解决方案。
发明内容
本发明的主要目的在于提出一种防止缓存穿透方法及装置、计算机可读存储介质,旨在解决缓存穿透的问题。
为实现上述目的,本发明实施例第一方面提供一种防止缓存穿透方法,所述方法包括步骤:
客户端向服务器端请求缓存信息,其中所述请求包括键值;
所述服务器端接收请求,根据所述键值到服务器端缓存系统中获取缓存值;
判断获取的缓存值是否为空值;
若获取的缓存值不为空值,则判断获取的缓存值是否为空默认值;
若获取的缓存值为空默认值,则将所述空默认值转换为空数据返回所述给客户端。
进一步地,所述空默认值包括特殊符号或专用字符串。
进一步地,所述方法还包括步骤:
若获取的缓存值不为空默认值,则判断获取的缓存值是否为NX默认值;
若获取的缓存值为NX默认值,则根据所述键值从备用缓存系统中读取数据,并将读取数据返回给所述客户端。
进一步地,所述方法还包括步骤:
若获取的缓存值不为NX默认值,则将获取的缓存值返回给所述客户端。
进一步地,所述方法还包括步骤:
若获取的缓存值为空值则调用所述服务器端缓存系统的写命令,将NX默认值写入所述服务器端缓存系统中;
判断所述NX默认值写入是否执行成功;
若所述NX默认值写入执行成功,则从服务器端数据库中读取数据,若从服务器端数据库中读取的数据不为空值,则将从服务器端数据库中读取的数据写入所述服务器端缓存系统和备用缓存系统中,并将从服务器端数据库中读取的数据返回给所述客户端。
进一步地,所述方法还包括步骤:
若所述NX默认值写入执行不成功,则从备用缓存系统中读取数据,并将读取数据返回给所述客户端。
进一步地,所述方法还包括步骤:
若从服务器端数据库中读取的数据为空值,则将空默认值写入所述服务器端缓存系统和备用缓存系统中,并将空默认值转换为空数据返回所述给客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于努比亚技术有限公司,未经努比亚技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710372299.7/2.html,转载请声明来源钻瓜专利网。