我们有一个API(ASP.NET Web Api 2,具体而言)需要以某种算法方式遍历大量实体,以便研究所需的结果。
对于每个执行的查询,此集合都是相同的。它形成了数据"来源"每次通话。
集合的属性:
每次向API发出请求时,都会从磁盘或数据库中读取此集合会导致大量开销。所以,我们静态地坚持它,几乎作为一个单身人士。这似乎有效,因为静态对象在应用程序的所有请求之间共享,并且与应用程序域具有相同的生命周期。这导致几乎即时的API请求。
对于这样的问题,是否有更好的模式,实践或框架?
答案 0 :(得分:1)
如果您真的不需要刷新数据,那么您的解决方案就可以了。
但只有在必须扩展到多个Web服务器之后。达到这一点,您可能需要确保所有Web服务器都具有相同的数据,并且 - 根据您的环境和体系结构 - 这可能会非常棘手。也许如果你能达到这一点,你会问另一个问题......
答案 1 :(得分:1)
您可以使用Redis或mecmached等缓存服务器。
在这个SO中你可以对它们进行比较,这也可以解释它们的全部内容,以及与当前实现的区别:Memcached vs. Redis?
当然,在这里你有每个官方网站:
甚至还有第三个竞争对手:hazelcast。