asp.net - 有哪些方法可以优化 ASP.NET 缓存的使用?

标签 asp.net optimization caching

我一直在阅读有关此主题的内容,但我很好奇优化 ASP.NET 缓存的使用的最佳方法是什么,以及关于如何确定应该做什么的一些技巧并且不应该进入缓存。另外,是否有任何经验法则来确定某些内容应该在缓存中保存多长时间?

最佳答案

一些经验法则

  • 每次考虑使用缓存时,请考虑缓存未命中与请求的比率。如果该项目的缓存请求大部分时间都会丢失,那么好处可能不会超过维护该缓存项目的成本
  • 考虑查询费用与缓存检索费用(例如,对于简单读取,由于序列化成本,SQL Server 通常比分布式缓存更快)

一些技巧

  • gzip 字符串,然后将其粘贴到缓存中。有效扩展缓存,减少分布式缓存情况下的网络流量
  • 如果您担心缓存聚合(例如计数)需要多长时间,请考虑使用未过期(或长期存在)的缓存聚合,并在更改基础数据时主动更新这些聚合。这是一项有争议的技术,在继续之前您应该真正考虑您的请求/无效比率,但在某些情况下,好处可能是值得的(例如,每个用户的 SO 代表可能是一个很好的候选者,具体取决于实现细节,未回答的 SO 问题的数量将可能是一个糟糕的候选人)

关于asp.net - 有哪些方法可以优化 ASP.NET 缓存的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594876/

相关文章:

c# - 为什么对 ASP.NET MVC Controller 的调用不执行 DelegatingHandler?

c# - 使用与绑定(bind)不同的数据源将列动态添加到 Gridview

c# - 带外键的 Fluent nHibernate "not-null property references a null or transient value"

arrays - 要移除的最小块数使得没有水被困在集水器中

java - 使用 JBoss Cache 作为 Apache Lucene 的目录

android - OkHttp3 缓存似乎未通过 Retrofit 2 检查

c# - 在 Global.asax 中给定值的变量有时会返回错误的值

python - 使用类型提示将 Python 翻译成 Cython

mysql - 在时间戳上创建索引以优化查询

css - 强制刷新缓存的 CSS 数据