在asp.net-mvc / SQL服务器中,存储昂贵的计算数据并像stackoverflow一样快速提供服务的最佳方式



我对stackoverflow有类似的要求,以便在我的asp.net-mvc站点的页面上显示一些非常昂贵的计算指标。Stackoverflow在页面上有很多指标(比如用户接受率等),这些指标显然不是在页面请求的运行中计算出来的,因为它太慢了。

在没有性能损失的情况下,如何快速地提供计算数据(假设我们可以接受这些数据可能有点过时)?

这是存储在一些缓存层或存储在其他一些"结果"数据库表,所以每天都有一个工作来计算这些数据和存储结果,所以他们可以直接查询?

假设我很高兴处理将此数据作为快照的延迟,那么这种问题的最佳解决方案是什么?

他们可能依赖于Redis数据存储进行这样的计算和缓存。

是的,答案是缓存,你怎么做是(可能是)复杂的部分,如果你使用NHibernate添加缓存真的很容易,是你配置的一部分,在查询中你只需要添加。cacheable,它会为你管理它。缓存还取决于环境类型,如果您使用的是单个worker、web farm或web garden,则必须构建一个缓存层来适应您的场景

虽然这是一项最近的技术,但构建系统以使此类事情成为可能的真正好方法是使用命令和查询职责分离,更经常被称为CQRS。

最新更新