整个ASP.Net难题的新手!!
所以我在控制器中有一组Web API(动作),它们将从客户端相互连续调用。所有API都依赖于从数据库中提取的数据模型对象。现在我有一个DAO层来获取这些数据并透明地缓存它。因此,没有直接的问题,因为每次API调用都没有数据库往返。但DAO层由不同的团队维护,并不保证缓存将继续存在或其行为不会发生变化。
现在,模型对象的属性或属性会发生变化,但不会太频繁。因此,如果我将从客户端连续发出的API调用作为包引用,那么我可以安全地假设该包实际上可以查询一次这个数据并使用它而不必担心值的变化。我怎样才能做到这一点?我可以使用ASP.Net世界中的某个设计模式吗?我想要的是以定期间隔获取此值并刷新它,以防其中一个API调用失败,表明基础值已更改。
答案 0 :(得分:0)
可能会使用一些技术。首先,是否有理由需要第二个缓存,因为您的数据访问层已经拥有它,对吧?
您可以使用名为Strathweb.CacheOutput的第三方库在Web API响应级别上放置缓存,并且:
CacheOutput将负责服务器端缓存并为您设置适当的客户端(响应)标头。
您还可以使用 System.Runtime.Caching 中的 MemoryCache ,使用更加手动的方法来缓存数据访问层中的数据。
根据可用的基础架构, Cassandra 或 Redis 等分布式缓存可能是最佳选择。