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

一、缓存方式

        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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值