4

我目前正在开发一个大型网站,该网站非常动态,因此需要在内存中近乎永久性地存储大量信息(例如结帐的配置设置或用于实现的树菜单结构)。

此信息不是特定于会话的,它对于使用该网站的每个线程都是一致的。

在 ASP 中全局保存这些数据的最佳方式是什么,以便在需要时可以访问它,而不是在每次使用时重新加载?

4

7 回答 7

1

任何AppSettingsin都会web.config自动缓存(即,不会在您每次需要使用它们时从 XML 中读取它们)。

您也可以自己手动操作缓存

编辑:更好的链接...

于 2009-06-11T14:52:38.380 回答
1

不清楚您的信息是否是特定于会话的……如果是,则使用 ASP 会话对象。鉴于您对比例的描述,您可能希望查看在 Sql Server 中存储状态:

http://support.microsoft.com/kb/317604

这就是101方法。如果您正在寻找更强大的东西,请查看 memcached(发音为 Mem-Cache-Dee):

http://www.danga.com/memcached/

这就是 Facebook 和 Twitter 等应用程序使用的系统。

祝你好运!

于 2009-06-11T14:56:42.180 回答
1

我认为使用 ASP.NET 缓存功能是一个不错的选择。除了 John 的回答,您还可以使用 Microsoft 的 Patterns & Practices 团队的Caching Application Block

于 2009-06-11T15:07:46.597 回答
1

这是一个很好的视频,探索了保留应用程序状态的不同方法。 http://www.asp.net/learn/3.5-videos/video-11.aspx 它刷在 Application 对象上,该对象对整个应用程序、所有用户都是全局的,并向您展示如何创建命中计数器(显然存储一个整数,你可以存储对象)。如果您需要进行更改,您确实需要使用并发锁,而且我不确定它如何处理大量数据,因为我从来不需要在那里保留那么多。

于 2009-06-12T01:18:48.237 回答
0

我通常将类似的东西保存在 Application 对象中。

于 2009-06-11T15:03:07.047 回答
0

如果页面相互依赖并且相互发布,则可以使用页面的请求对象。可能不是您正在寻找的答案,但绝对是要使用的最小内存之一。

于 2009-06-12T00:55:21.320 回答
0

我过去也遇到过同样的情况,发现界面是最具可扩展性的解决方案。应用程序缓存可能是今天的答案,但它会扩展以满足您的需求吗?

如果您需要扩大规模,您可能会发现 cookie 或某种类型的临时数据库存储是诀窍。只需向您的界面添加一个新方法,然后将界面设置为从 web.config 中选择“模式”。

于 2009-06-12T03:17:38.077 回答