您好,登录后才能下订单哦!
本篇内容介绍了“缓存时有哪些问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
系统先从缓存中获取数据,如果成功获取到数据,则直接返回数据;
若没有获取到,则从数据库中获取,从数据库中正常获取之后,把数据更新进缓存中,返回正常数据;
若从数据库中也没有获取到数据,则返回空数据。
原有缓存失效,最新缓存数据未进入缓存期间,原本所有从缓存获取数据的请求都去查询数据库了。
对数据库CPU和内存造成巨大压力,严重会造成数据库宕机。
解决方案:
缓存数据的过期时间设置随机,避免同一时间大量缓存过期。
如果缓存数据是分布式部署,则将热点数据均匀分布在不同的缓存数据库中。
设置热点数据永不过期
指的是用户所查询的数据,数据库中不存在,缓存中也不存在。但是用户不断进行查询,导致数据库压力过大。
解决方案:
接口层增加校验,对于查询数据进行基础校验,不符合规则的,直接拒绝。
从缓存取不到的数据,在数据库中也查不到,则可以将key-value对写成key-null,缓存起来。
系统上线后,将相关的缓存数据直接加载到缓存系统,可以避免在用户请求的时候,先查询数据库,然后再将
数据缓存的问题。
除了缓存服务器自带的缓存失效策略之外,我们还可以具体的业务场景,进行自定义缓存淘汰。
常见的策略如下:
定时清理过期的缓存。
当用户请求数据的时候,判断这个请求用到的缓存是否过期,过期的话,直接更新缓存。
当访问量剧增,服务出现问题的时候,或者非核心服务影响到核心流程的性能时,仍然需要保证服务可用,即时是有损服务的。
系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。
降级的最终目的是保证核心服务可用。
有些服务因为网络抖动或者服务正在上线而超时,进行降级。
有些服务在一段时间内成功率有波动,可以自动降级或者人工降级,发送系统告警
服务不可用或者服务数据混乱,需要紧急人工降级
“缓存时有哪些问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。