程序性能优化万金油“缓存”

一、缓存方式

        1.客户端启用缓存

               RFC7324是HTTP协议中对缓存进行控制规范,其中重要的cache-control这个响应报文头。如果服务器返回cache-control:max-age=60,则表示服务器指示浏览器端可以缓存这个响应60秒。

                控制器方法体上加注解[ResponseCache(Duration=秒)]。

        2.服务器端缓存很鸡肋

                用法:app.MapController()之前加上app.UseResponseCacheing()。

        如果有跨域问题确保在app.UseCors()写到App.UseResponseCacheing()之前。

                鸡肋:如果客户端禁止缓存,由于请求报文体中会携带cache-control:no-cache

        所有服务端也会禁止缓存。

        3.内存缓存

                用法:

                  1.注册服务builder.Services.AddMemoryCache();

                   2.注入IMemoryCache接口,接口以及扩展方法:CreateEntry、TryGetValue、Remove、Set、GetOrCreate、GetOrCreateAsync

                

        ​​​​​​​        

                    3.GetOrCreateAsync用法

        ​​​​​​​        

                 

                            ​​​​​​​        ​​​​​​​        ​​​​​​​        gugu

 二、缓存过期策略

 

 绝对过期时间为10秒

滑动过期

 

 

 

 三、缓存穿透

 

 如果穿得id不存在数据库里没有,每一次都要执行数据库操作。大量请求会导致穿透

解决办法

四、缓存雪崩

 

 合理设置key

猜你喜欢

转载自blog.csdn.net/weixin_57062986/article/details/131785774
今日推荐