我有一些表格数据,由于无关的问题导致实时退出SQL Server太慢。随着我们获得更多用户,这只会变得更糟,所以我在考虑使用Redis作为前端缓存来存储用户的表格可分页数据。
这个数据在大约10分钟后可能会变得陈旧,之后我想再次获得记录集并放入Redis。
该应用程序是一个.NET MVC应用程序。我在想,当用户登录到应用程序时,这些数据会从数据库中拉出(大约需要10秒钟)并放入Redis准备好供MVC客户端使用。我会对该数据进行过期,然后当它变得陈旧时,它将从SQL Server数据库中重新获取。
这一切听起来合理吗?我有点害怕:
答案 0 :(得分:3)
我将使用Service stack redis实现,here是所需的全部细节。与其他nosql相比,Redis在进行缓存时特别好。但是如果你有很高的读写应用程序,我会坚持将nosql数据库作为数据库与SQL服务器结合使用。这将有助于扩展性。
如果需要进一步的详细信息,请与我们联系。你只需要激活nuget命令,你几乎已经启动并运行了。
答案 1 :(得分:1)
您可以使用MemcacheD之类的东西在内存中存储缓存页面。
您可以在缓存对象上设置10分钟的有效期。之后,缓存将自动删除该对象。
您的实际存储库必须执行以下步骤:
1.检查缓存中是否有您想要的数据,如果有,请使用它
2.如果缓存的数据不存在,请转到SQL服务器检索它
3.使用从SQL Server返回的数据
我之前使用过Enyim客户端。它很棒。 https://github.com/enyim/EnyimMemcached
我也可能会使用像Quartz这样的东西来安排后台任务来填充缓存。 http://quartznet.sourceforge.net/