1

我只想了解 ASP.NET 缓存,我将把我的问题放在这个简单的例子上。

我在页面“samplepage.aspx”上使用缓存(我现在没有使用这种方法。

// upon entering of the samplepage.aspx, assign user id to cache
Cache["loginid"] = Login.Id.ToString();

user1 进入该页面并当前使用该缓存对象。最终,当用户 1 当前登录时,用户 2 也进入了同一页面,即“samplepage.aspx”。

现在我的问题是,user2 的 Login.Id 是否会覆盖 user1 已分配其 Login.Id 的缓存“loginid”?

或者它会为 user2 的缓存对象创建另一个内存?如果我将一个列表(假设是一个包含 5000 名员工的列表)放入缓存中,它会影响我的系统性能吗?此外,如果我将相同的数据放入其中,哪个会消耗更多的内存、缓存或会话?

我以前使用过会话,但我想知道缓存是否可以像会话一样。感谢您的回答。

编辑:
@TimMedora,感谢您的评论,但是如果该列表在该页面上过滤了某个用户的每个事件怎么办?例如,如果 user1 单击 button_filterLastNameOnly,而 user1 将单击另一个 button_filterFirstNameOnly。如您所见,该列表将根据 user1 的事件进行过滤。我不知道在哪里保存该列表,因为我阅读了有关减少数据库往返次数的文章,因此我想将该列表保存在缓存或会话中。

4

2 回答 2

2

See Data cache vs session object in ASP.Net.

Basically, for user specific objects (like in your case, the user id), use the session. For object shared by all user, use cache.

于 2013-10-17T02:42:58.003 回答
1

Cache performance is good so don't worry about using it.

In your example, it is much better to save your user information in the Session because it is a unique information for each user. If you wanted to save something common for all users, then you could go for Cache.

于 2013-10-17T02:42:45.347 回答