c# - ASP.NET 持久缓存 ("Lazy loading"风格?)

标签 c# asp.net caching

我在让缓存按我想要的方式工作时遇到一些问题。

问题: 检索所请求数据的过程非常耗时。如果使用标准 ASP.NET 缓存,某些用户将遭受检索数据的“打击”。这是 Not Acceptable 。

解决方案?: 数据是否 100% 是最新的并不是非常重要。我想提供旧的无效数据,同时更新另一个线程中的缓存数据,使新数据可用于将来的请求。我认为数据需要以某种方式保留下来,以便能够在应用程序重新启动后为第一个用户提供服务,而不让该用户受到“打击”。

我已经制定了一个解决方案,可以实现上述一些功能,但我想知道是否有“最佳实践”方法,或者是否有一个缓存框架已经支持这种行为?

最佳答案

有一些工具可以执行此操作,例如 Microsoft 的 ISA Server(可能有点昂贵/过度杀伤力)。

您可以使用企业库缓存将其缓存在内存中。让您的用户从缓存中读取数据,并让其他页面更新缓存,应根据需要定期调用这些其他页面以保持数据最新。

关于c# - ASP.NET 持久缓存 ("Lazy loading"风格?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058749/

相关文章:

c# - 使用 C# 在预印纸表格的特定位置打印文本

c# - FFT 的音频文件读取

c# - 将表单显示为工具提示

Javascript ajax 从 C# 获取未定义的数据

php - 为不同的 SQL 查询提供唯一的缓存键标识符。 md5 的替代品?

Python/mod_wsgi 服务器全局数据

c# - 在 C# 中编辑文本文件的特定行

asp.net - 间歇性 "Failed to load viewstate"错误

c# - 在 GridView 的 RowBound 事件上将 SqlDataReader DataItem 转换为 DataRowView 时出错

为文件实现伪缓存系统的 PHP 方法