缓存时有哪些问题

本篇内容介绍了“缓存时有哪些问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们提供的服务有:成都做网站、成都网站建设、微信公众号开发、网站优化、网站认证、萝北ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的萝北网站制作公司

缓存正常的处理流程如下:

缓存时有哪些问题

  1. 系统先从缓存中获取数据,如果成功获取到数据,则直接返回数据;

  2. 若没有获取到,则从数据库中获取,从数据库中正常获取之后,把数据更新进缓存中,返回正常数据;

  3. 若从数据库中也没有获取到数据,则返回空数据。

缓存的几个问题:

缓存雪崩

原有缓存失效,最新缓存数据未进入缓存期间,原本所有从缓存获取数据的请求都去查询数据库了。
对数据库CPU和内存造成巨大压力,严重会造成数据库宕机。

解决方案:

  1. 缓存数据的过期时间设置随机,避免同一时间大量缓存过期。

  2. 如果缓存数据是分布式部署,则将热点数据均匀分布在不同的缓存数据库中。

  3. 设置热点数据永不过期

缓存穿透

指的是用户所查询的数据,数据库中不存在,缓存中也不存在。但是用户不断进行查询,导致数据库压力过大。

解决方案:

  1. 接口层增加校验,对于查询数据进行基础校验,不符合规则的,直接拒绝。

  2. 从缓存取不到的数据,在数据库中也查不到,则可以将key-value对写成key-null,缓存起来。

缓存预热

系统上线后,将相关的缓存数据直接加载到缓存系统,可以避免在用户请求的时候,先查询数据库,然后再将
数据缓存的问题。

缓存更新

除了缓存服务器自带的缓存失效策略之外,我们还可以具体的业务场景,进行自定义缓存淘汰。

常见的策略如下:

  1. 定时清理过期的缓存。

  2. 当用户请求数据的时候,判断这个请求用到的缓存是否过期,过期的话,直接更新缓存。

缓存降级

当访问量剧增,服务出现问题的时候,或者非核心服务影响到核心流程的性能时,仍然需要保证服务可用,即时是有损服务的。
系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。
降级的最终目的是保证核心服务可用。

  • 有些服务因为网络抖动或者服务正在上线而超时,进行降级。

  • 有些服务在一段时间内成功率有波动,可以自动降级或者人工降级,发送系统告警

  • 服务不可用或者服务数据混乱,需要紧急人工降级

“缓存时有哪些问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


分享文章:缓存时有哪些问题
分享地址:http://hbruida.cn/article/gpssic.html