。NET Core Web API中缓存大数据

问题描述 投票:0回答:1

我有一个Web API,可以提供复杂的统计/预测数据。我有一个甚至需要20秒钟才能完成的端点,因此我开始研究缓存以引导性能。我的情况与许多示例中描述的情况大不相同,因此我需要帮助。

长话短说,该方法返回项目的一批预测和统计信息。对于单个项目,最快50ms就可以了。但是还有一种方法(非常复杂),需要一次2000-3000个项目来计算不同的统计信息。这是一个问题。

[数据库中大约可能有250,000个项目,一张表中大约有200M行。好地方是:表每天仅更新一次,我将需要大约1GB的数据(大约8000万“优化”行)。

因此,我的想法是,API每天一次(我确切地知道什么时候)将查询,转换,优化该表中的1GB数据并将其放入内存,并且白天它会快速点亮。

我的问题是,这是个好主意吗?我应该使用某些外部提供程序(例如Memcached或Redis)还是仅使用信号量等适当锁定的单例列表?

如果是Memcache,该怎么办?我不想“按原样”缓存该表。这个太大了。我需要先进行一些转换。

谢谢!

c# asp.net-core caching redis memcached
1个回答
0
投票

如果不受服务器RAM限制,这是一个很好的解决方案,imo。由于它是.Net Core,因此您可以尝试System.Runtime.Caching.MemoryCache

© www.soinside.com 2019 - 2024. All rights reserved.