选择缓存与会话以将数据存储在Web表单应用程序中

时间:2013-10-17 02:34:17

标签: asp.net c#-4.0

我只是想了解ASP.NET缓存,我只想对这个简单的例子提出问题。

我在页面“samplepage.aspx”上使用缓存(我现在不使用此方法。

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

user1进入该页面并且当前正在使用该缓存对象。 最终,user2也会在user1当前登录的同一页面上输入“samplepage.aspx”。

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

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

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

修改
@TimMedora,感谢您的评论,但如果列表被过滤了该页面上某个用户的每个事件怎么办?例如,如果user1单击button_filterLastNameOnly,则user1将单击另一个button_filterFirstNameOnly。如您所见,该列表将根据user1的事件进行过滤。我不知道在哪里保存该列表,因为我读了this article关于减少从数据库的往返,所以我想将该列表保存在缓存或会话上。

2 个答案:

答案 0 :(得分:2)

Data cache vs session object in ASP.Net

基本上,对于特定于用户的对象(如您的情况,用户ID),请使用会话。 对于所有用户共享的对象,请使用缓存。

答案 1 :(得分:1)

缓存性能良好,因此不必担心使用它。

在您的示例中,最好将您的用户信息保存在会话中,因为它是每个用户的唯一信息。如果您想为所有用户保存常用内容,那么您可以选择缓存。