缓存
缓存的作用=>减少服务器访问,减轻数据库压力,性能优化第一步。
缓存分为客户端缓存(浏览器缓存),CDN缓存,反向代理缓存,服务端缓存(本地缓存/分布式缓存)。简而言之,缓存无处不在!
客户端缓存
反向代理缓存
本地缓存
Asp.Net Core内置了MemoryCache作为本地缓存
分布式缓存
也非常友好的支持了Redis分布式缓存
缓存的几个坑
缓存穿透:一直以一个不存在的值去查询,导致一直不走缓存。
解决方法:把不存在的值也存起来。
缓存击穿:一个缓存过期,大量用户访问这个key值。
解决方案:让它不过期。
缓存雪崩:大量缓存同时过期,数据库承受不了压力GG
解决方案:将过期时间做个随机变化,防止大量缓存同时过期。