一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
缓存的好处,缓存是网站性能优化不可缺少的一种数据处理机制,他能有效的缓解数据库压力,例如,网站每分钟的点击率为100万,如果不使用缓存的静态页面,这里也没有viewstate的情况下(viewstate会产生大量的字符串,对服务器交互数据是一种压力,所以一般页面是要禁用viewstate,采用缓存的),只能是用户点击一次该页面,这个页面就读取一次数据库,这样给数据库造成的压力可想而知,如果这里我们使用了缓存的话,设置缓存有效期为1分钟,则这一分钟只内,点击100万次跟点击一次是一样的,都是读取一次数据库,数据源是被缓存在内存中了。
ASP.NET 有 3 种类型的依赖:
- 依赖于其他缓存项目
- 依赖于文件或文件夹
- 依赖于数据库查询
你的软件产品缓存了吗?缓存依赖项使缓存依赖于其他资源,当依赖项更改时,缓存条目项将自动从缓存中移除。缓存依赖项可以是应用程序的 Cache 中的文件、目录或与其他对象的键。如果文件或目录更改,缓存就会过期
|