【发布时间】:2019-03-05 21:26:22
【问题描述】:
我创建了由 8 个控制器和 12 个存储库组成的 .Net Core 应用程序。应用程序缺乏速度,需要减少发送到 SQL 数据库的请求数。
当接收到用户的请求时,所有控制器都会创建一个新连接以通过存储库加载数据。我认为改进核心的最好方法是缓存所有数据并将其存储在存储库的内存中
目前,所有存储库都有一个缓存结果列表,在初始化期间填充(我只是调用 SELECT * FROM table 并将数据放入列表中)
问题在于控制器存储相同存储库的不同实例,其中每个存储库都有自己的缓存列表。它可以工作但并不理想,因为需要更新缓存并且需要在所有控制器中存储缓存列表
您对如何在 .Net Core 中的控制器之间共享缓存数据有任何想法吗?
【问题讨论】:
-
对缓存使用
static或Lazy<T>类可能是最好的解决方案。
标签: c# caching asp.net-core-2.0