我正在使用 wunderground api 创建一个天气应用程序,因为它将您每天/分钟可以发出的请求数量限制为每天 500 个和每分钟 10 个,我需要使用 ASPX 或 PHP 实现某种形式的缓存,以便我保留在那个限度内。
此外,不幸的是,我无法访问数据库,我考虑过生成一个文本文件,但我担心它可能会在写入过程中尝试获取数据并导致错误。
在处理可能出现的任何并发问题时,为单个位置缓存此数据的最佳方法是什么?
谢谢你的帮助。
ASP.NET 具有可用于您的目的的缓存 - 请参阅类http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx。
缓存值 10 分钟,您可以使用它,然后缓存值自动过期,并且可以重新加载实际值:
Cache.Insert(cache_key, value, null, DateTime.Now.AddMinutes(10),
Cache.NoSlidingExpiration);
通过以下方式检索缓存值:
return Cache[cache_key];
对于缓存值的锁定(在重新加载期间),您可以使用 lock 关键字,可以在此处找到更多详细信息:在 ASP.NET 中正确锁定