我在我的一个网站上使用SqlProfileProvider,在一个页面中,我需要获取完整的配置文件列表(它是一个内部网)。
我使用的方法是ProfileManager.GetAllProfiles()。问题是,它的性能真的很差,它大大减慢了网站的速度。
因此,我正在考虑将应用程序范围中的方法调用的结果缓存为一个DataTable (这样我也可以对它进行筛选/搜索)。
我的问题是,我有几个服务器运行这个the应用程序,我希望缓存是同步的。我开始使用memcached,但由于一些问题(因此回到了在应用程序范围中缓存的思考中),我被推迟了。
下面是我的问题:
发布于 2009-11-04 21:33:46
您可以通过将配置文件列表放在用户控件中并将其标记为可缓存,从而对网页进行缓存部分。也可以定义SqlCacheDependency缓存策略过期。至于缓存位置,场中的每个web服务器都有自己的内存版本,但使用缓存过期将确保此版本不会与DB中的数据不同步。
页面或片段缓存是最有效的缓存技术,因为与缓存您的模型( DataTable或其他任何东西)相反,您不需要为HTML呈现付出代价。
https://stackoverflow.com/questions/1676668
复制相似问题