Sql server 我应该如何使用Redis作为SQL Server的缓存?

Sql server 我应该如何使用Redis作为SQL Server的缓存?,sql-server,asp.net-mvc,redis,Sql Server,Asp.net Mvc,Redis,我得到了一些表格数据,由于不相关的问题,这些数据太慢,无法实时从SQL Server中取出。随着用户数量的增加,这种情况只会变得更糟,因此我考虑使用Redis作为前端缓存来存储用户的表格可分页数据 大约10分钟后,这些数据可能会过时,在此之后,我希望重新设置记录并将其放入Redis 该应用程序是一个.NET MVC应用程序。我在想,当用户登录到应用程序时,这些数据会从数据库中取出(大约需要10秒钟),然后放入Redis,准备由MVC客户端使用。我会对该数据设置一个过期日期,然后当它变得过时时,它

我得到了一些表格数据,由于不相关的问题,这些数据太慢,无法实时从SQL Server中取出。随着用户数量的增加,这种情况只会变得更糟,因此我考虑使用Redis作为前端缓存来存储用户的表格可分页数据

大约10分钟后,这些数据可能会过时,在此之后,我希望重新设置记录并将其放入Redis

该应用程序是一个.NET MVC应用程序。我在想,当用户登录到应用程序时,这些数据会从数据库中取出(大约需要10秒钟),然后放入Redis,准备由MVC客户端使用。我会对该数据设置一个过期日期,然后当它变得过时时,它将从SQL Server数据库中重新提取

这一切听起来合理吗?我有点害怕:

  • 用户可以在数据进入Redis之前进入页面
  • 如果Redis宕机或没有响应,我需要确保ViewModel可以直接从SQL SErver填充,而不需要Redis

  • 您可以使用MemcacheD之类的东西将缓存的页面存储在内存中

    可以将缓存对象的有效期设置为10分钟。之后,缓存将自动删除该对象

    您的实际存储库必须执行以下步骤:
    1.检查缓存中是否有所需的数据,如果有,请使用它
    2.如果缓存的数据不存在,请转到SQL server检索它
    3.使用SQL server返回的数据更新缓存

    我以前用过Enyim客户机。它工作得很好


    我也可以使用类似Quartz的东西来安排后台任务来初始化缓存

    我将讨论服务堆栈redis的实现,所有细节都是必需的。与其他nosql相比,Redis在进行缓存时尤其出色。但如果您有一个高读写应用程序,我会坚持将nosql数据库作为数据库与SQL server结合使用。这将有助于实现可伸缩性


    如果需要进一步的细节,请告诉我。您只需启动nuget命令,就可以开始运行了

    维多利亚,你可能会觉得有趣。大约在第15分钟,他展示了一种集成Redis的可能方法。@uvita你能补充这个作为我愿意接受的答案吗?这是我正在寻找的完美解决方案for@Victoria您是否考虑过实现cache-aside模式?另外,您是否正在使用实体框架?您可能想考虑使用EngyTrimeWork.扩展。它的默认缓存机制将允许您在web应用程序服务器上本地缓存数据,这相当快。但是,如果您希望能够横向扩展您的解决方案,您可以为其开发一个自定义缓存提供程序。我也喜欢你把Redis当作缓存的想法。Redis的实现将非常类似于Memcached。。。有人说它同样快或者更快,而且它有更多的功能。我不能推荐它,因为我从来没有在一些NodeJS演示应用之外使用过它