结合会话和缓存

时间:2010-04-01 09:19:08

标签: asp.net session caching

为了使我的Extranet Web应用程序更快/更具可伸缩性,我想到了使用一些缓存机制。对于我们将使用HTML缓存的某些页面,请忽略该问题的技术。

例如:在某个时间点,2500名经理将同时登录我们的申请 (大多数人拥有相同的账户/项目)

我想将Account-cachekey和Project-cachekey存储到用户的Session中,并使用它来从Cache中获取项目。

我可以简单地将帐户存储到会话中,但这会在内存中产生2500个相同的帐户。

对此有更好的解决方案还是有意义的?)?

1 个答案:

答案 0 :(得分:1)

通常,向会话添加项目会对可伸缩性产生负面影响。根据您的技术,在使用会话变量时(例如在经典的asp中),可能会出现向多个服务器扩展的问题。

话虽如此,如果性能是您的首要任务,您可以在会话和应用程序变量中缓存数据。我一直认为不值得为这个大小的数据集麻烦,因为sql server几乎肯定会将这些数据缓存在内存中,而你所保存的只是网络往返。

最后,首先看一下代码和硬件优化,以提高性能。迁移到托管/编译代码,减少html的大小,优化图像,缩小JavaScript,当然还有你之前提到的html缓存 - 这些都是我首先考虑的事情。