我在让缓存按我想要的方式工作时遇到一些问题。
问题: 检索所请求数据的过程非常耗时。如果使用标准 ASP.NET 缓存,某些用户将遭受检索数据的“打击”。这是 Not Acceptable 。
解决方案?: 数据是否 100% 是最新的并不是非常重要。我想提供旧的无效数据,同时更新另一个线程中的缓存数据,使新数据可用于将来的请求。我认为数据需要以某种方式保留下来,以便能够在应用程序重新启动后为第一个用户提供服务,而不让该用户受到“打击”。
我已经制定了一个解决方案,可以实现上述一些功能,但我想知道是否有“最佳实践”方法,或者是否有一个缓存框架已经支持这种行为?
最佳答案
有一些工具可以执行此操作,例如 Microsoft 的 ISA Server(可能有点昂贵/过度杀伤力)。
您可以使用企业库缓存将其缓存在内存中。让您的用户从缓存中读取数据,并让其他页面更新缓存,应根据需要定期调用这些其他页面以保持数据最新。
关于c# - ASP.NET 持久缓存 ("Lazy loading"风格?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058749/