2013-10-17 4 views
1

ASP.NET 캐시에 대해 알고 싶습니다.이 간단한 예제에 대한 질문을 드리겠습니다.캐시와 세션을 선택하여 웹 양식 응용 프로그램에 데이터 저장

나는 (내가 지금이 방법을 사용하고 있지 않다 .) 페이지 "samplepage.aspx"에 캐시를 사용

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

사용자 1은 해당 페이지에 들어가 현재 해당 캐시 개체를 사용하여. 결국 user2가 현재 로그온되어있는 동안 "samplepage.aspx"인 동일한 페이지에 user2가 입력됩니다.

이제 내 질문은 user2의 Login.Id가 user1이 이미 Login.Id를 할당 한 "loginid"캐시를 덮어 쓸 수 있습니까?

또는 user2에 대한 캐시 개체에 대한 다른 메모리가 생성됩니까? List (5000 명의 직원 목록)를 캐시에 저장하면 시스템 성능에 영향을 미칠 수 있습니까? 또한 동일한 데이터를 입력하면 더 많은 메모리, 캐시 또는 세션을 소비합니까?

이전에 세션을 사용했지만 캐시가 세션처럼 작동하는지 알고 싶습니다. 답변 주셔서 감사합니다.

편집 :
@TimMedora, 당신의 의견을하지만 목록이 해당 페이지에 특정 사용자의 모든 이벤트를 여과 경우 주셔서 감사합니다? 예를 들어, user1이 button_filterLastNameOnly를 클릭하면 user1이 다른 button_filterFirstNameOnly를 클릭합니다. 보시다시피 해당 목록은 user1 이벤트를 기준으로 필터링됩니다. 캐시 또는 세션에 해당 목록을 저장하려면 데이터베이스에서 왕복을 줄이는 방법에 대해 this article을 읽었으므로이 목록을 저장할 위치를 모른다.

+1

'세션'은 아마도 사용자 별 ID에 적합한 선택 일 것입니다. 'Cache'도 비슷하게 동작 할 수 있지만 고유 한 키를 사용/추적하기 위해서는 당신에게 부담을줍니다. 캐시는 아마도 5000 개의 항목 목록에 적합한 선택 일 것입니다. 확실히 그러한 목록이 사용자별로 저장되기를 원하지 않을 것입니다. –

+0

http://stackoverflow.com/questions/492043/data-cache-vs-session-object-in-asp-net을 참조하십시오. 기본적으로 사용자 별 개체의 경우 세션을 사용하십시오. –

+0

@Zirkonix, 링크 주셔서 감사합니다. – Flash3

답변

1

캐시 성능이 좋으므로 사용하는 것이 좋습니다.

예를 들어, 각 사용자에 대한 고유 한 정보이므로 세션에 사용자 정보를 저장하는 것이 훨씬 좋습니다. 모든 사용자에게 공통된 것을 저장하려면 캐시를 사용할 수 있습니다.

2

Data cache vs session object in ASP.Net을 참조하십시오.

기본적으로 사용자 특정 개체 (예 : 사용자 ID)의 경우 세션을 사용하십시오. 모든 사용자가 공유하는 개체의 경우 캐시를 사용하십시오.

관련 문제