许多请求缓存有效吗?

时间:2011-09-19 02:23:31

标签: c# asp.net .net caching

当有人访问我的网页时,我有大约100个C#缓存请求。你觉得从数据库中获取信息会更好吗?因为如果我进行数据库调用,它只是数据库的一次往返。但是,如果我尝试从缓存中调用此信息,我必须多次往返缓存。

2 个答案:

答案 0 :(得分:2)

在内存中查找几乎总是比跳跃网络查询数据库更快。

您还应考虑超过该单个请求的时间。即使单个请求更长时间执行100次内存查找(除非您的数据结构效率低下,否则不会这样做),请考虑瓶颈。数据库始终成为可以向外扩展的系统中的单一瓶颈。通过在内存中缓存,您可以让系统呼吸,并通过添加更多前端服务器来扩展它。

但是缓存并非没有自己的问题。终身始终是一项挑战 - 特别是如果您需要在更改后快速更新数据。

缓存也是错误的来源。如果您需要更新数据并且您的应用扩展,您可以在服务器场中反弹并获得不一致的答案。这可以通过群集亲和力最小化,或者如果数据不经常更改或者不是最新的并不重要,它甚至可能不是问题。

答案 1 :(得分:1)

存在内存缓存,因为对内存的请求几乎总是比网络请求更快。将数据放入缓存后,重新查询数据库的唯一原因是您认为缓存中的数据已过期。

也就是说,如果您多次查询缓存,我不会看到如何将其简化为单个数据库查询(除非您按行或字段从缓存中获取数据。)

无论如何,多次访问内存应该比从数据库刷新快得多。