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

Vic*_*ria 15 sql-server asp.net-mvc redis

我有一些表格数据,由于无关的问题导致实时退出SQL Server太慢.随着我们获得更多用户,这只会变得更糟,所以我在考虑使用Redis作为前端缓存来存储用户的表格可分页数据.

大约10分钟后,这些数据可能会变得陈旧,之后我想再次获得记录集并放入Redis.

该应用程序是一个.NET MVC应用程序.我在想,当用户登录到应用程序时,这些数据会从数据库中拉出(大约需要10秒钟)并放入​​Redis准备好供MVC客户端使用.我会对该数据进行过期,然后当它变得陈旧时,它将从SQL Server数据库中重新获取.

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

  1. 用户可以在数据进入Redis之前访问该页面
  2. 如果Redis出现故障或没有响应,我需要确保ViewModel可以直接从SQL SErver填充,而Redis不在那里

kun*_*jee 5

我将去实现服务堆栈 redis,这里是所有需要的细节。与其他 nosql 相比,Redis 在进行缓存时特别好。但是如果你有高读写应用,我会坚持把nosql数据库作为结合SQL服务器的数据库。这将有助于可扩展性。

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


Jer*_*ell 4

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

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

你的实际存储库必须执行以下步骤:
1. 检查缓存中是否有你想要的数据,如果有,那就好好利用它
2. 如果缓存数据不存在,则转到 SQL Server 检索它
3. 更新从 SQL Server 返回的数据的缓存

我以前用过Enyim客户端。效果很好。 https://github.com/enyim/EnyimMemcached

我还可能使用 Quartz 之类的东西来安排后台任务来填充缓存。 http://quartznet.sourceforge.net/