使用什么而不是Session?

时间:2013-06-04 12:35:47

标签: c# session

正如我在此处所读到的,使用Session不适合存储大量数据。

我在控制器的c#中有一个方法,我从javascript文件中调用它(带有ajax调用)。这种方法被称为很多次,大约500次。在这个方法中,我有一个for循环,循环10次。

我第一次调用它时,创建新会话并将其设置为null。 在那之后,我一直称它为每个for循环,我将数据添加到会话中。

对于小数据,它的效果很好。实际上它甚至适用于大数据。但问题是 - 呼叫次数越多,呼叫越慢。 500次需要5个小时。

我在这里读到:Storing large amounts of data in the Asp.net session该会话不适合存储大量数据。

我应该使用什么作为替代方案?

我考虑过将其保存在db中,但是每次调用该方法时,我都需要对db进行两次查询:一个用于获取数据,另外两个用于重新获取数据。

我该怎么做才能让它更快地运作?

2 个答案:

答案 0 :(得分:0)

你必须非常小心会话。您可以使用对所有用户都相同的查找数据进行缓存。请参阅上面的缓存示例。 http://www.codeproject.com/Articles/134784/MyCache-Distributed-caching-engine-for-an-ASP-NET

答案 1 :(得分:0)

你有一台服务器吗?如果是这样,如果数据太大而无法存储在数据库中,则可以将数据存储为本地文件。但是,这不会扩展到多个服务器,除非它们在某处具有公共文件访问权限。否则,像数据库或分布式缓存这样的东西将是最好的选择。