.net - 使用 .net 缓存提供程序类在数据库中的 Web 服务器上缓存数据库查询结果

标签 .net asp.net database caching

我有一个类似电子商务的站点要构建,考虑到我们必须处理的请求的频率和数量,最好从一开始就将缓存合并到我们的代码库中。我阅读了 .net 4 的 system.runtime.cache 和 system.web.cache。这些类在应用程序级别提供缓存。也有可能使用 outputcacheprovider 接口(interface)实现我们自己的自定义提供程序。

现在我在想最好在网络服务器本身有一个小型数据库服务器,它会缓存经常进行的 sql 查询的结果,这可能是网页的服务器,并且会节省我到实际数据库服务器的往返行程和数据库访问。

我浏览了很多博客,但没有找到与此直接相关的内容。 现在我有几个问题: 1. 在 webserver 上有一个小的 dbserver 来处理频繁的查询是否好? 2. 是否可以使用 outputcacheprovider 实现这种缓存?

最佳答案

除了给您的网络服务器增加负载外,它不会做太多事情。唯一可能有所作为的情况是,如果您的网络在网络服务器和数据库服务器之间存在足够的滞后,那么值得这样做。

缓存的要点是您将数据以经过处理的形式保存在快速介质(即内存)中。

您最好查看 appfabric 或 memcache 之类的东西来提供缓存而不是数据库。

此外,请注意找出缓存和输出缓存之间的区别。缓存将数据保存在内存中,供您的应用程序根据需要使用。 OutputCaching 正在存储为页面生成的输出,这意味着 future 的请求将获得缓存的版本并且您不必每次都生成页面。

关于.net - 使用 .net 缓存提供程序类在数据库中的 Web 服务器上缓存数据库查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596840/

相关文章:

c# - 为什么最小化和恢复窗口会对 WPF 中已绘制的图形产生影响?

c# - 无法找到程序集 Entity Framework v 4.4.0.0

asp.net - jquery UI对话框确认未确认

asp.net - 何时在最小起订量中指定某些设置

JavaScript 可以在 IE 上运行,但不能在 Firefox 和 chrome 上运行

来自数据库的 PHP 日期作为时间戳 - 添加 X 小时

java - 一秒插入多少条记录

c# - .Net开源网格计算库

sql - JOIN 和 UNION 有什么区别?

.net - 任何学习 CIL 的好资源?