面试必问:缓存预热、降级?

2022-12-05 10:01:59 浏览数 (1)

作者:Bruce.D

github:https://github.com/doukoi-BDB

今日主题:

1、redis 的缓存预热?缓存降级?

2、GitHub 仓库更新 weChat - openApi 管理,详情公告

3、GitHub 仓库更新 weChat - 微信支付 管理,详情公告

01

缓存预热、缓存降级

1、缓存预热是指系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。

如果不进行预热,那么Redis初始状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中, 对数据库造成流量的压力。

缓存预热解决方案:

  • 数据量不大的时候,工程启动的时候进行加载缓存动作;
  • 数据量大的时候,设置一个定时任务脚本,进行缓存的刷新;
  • 数据量太大的时候,优先保证热点数据进行提前加载到缓存。

2、缓存降级是指缓存失效或缓存服务器挂掉的情况下,不去访问数据库,直接返回默认数据或访问服务的内存数据。降级一般是有损的操作,所以尽量减少降级对于业务的影响程度。

在进行降级之前要对系统进行梳理,看看系统是不是可以丢卒保帅;从而梳理出哪些必须誓死保护,哪些可降级;比如可以参考日志级别设置预案:

一般:比如有些服务偶尔因为网络抖动或者服务正在上线而超时,可以自动降级;

警告:有些服务在一段时间内成功率有波动(如在95~100%之间),可以自动降级或人工降级,并发送告警;

错误:比如可用率低于90%,或者数据库连接池被打爆了,或者访问量突然猛增到系统能承受的最大阀值,此时可以根据情况自动降级或者人工降级;

严重错误:比如因为特殊原因数据错误了,此时需要紧急人工降级。

02

weChat - openApi

仓库地址:https://github.com/doukoi-BDB/Frame-SDK (走过路过来个 stars )

1、文件地址:/Lib/weChatService/

2、详细说明:

03

weChat - 微信支付

仓库地址:https://github.com/doukoi-BDB/Frame-SDK (走过路过来个 stars )

1、文件地址:Frame-SDK/Demo/weChat_pay_H5

2、详细说明:

特殊说明:

1、仓库还有其他demo、类库、函数,均免费使用

2、想要了解的其他功能点,留言&社群告知我即可

0 人点赞