programing

애플리케이션 대 세션 대 캐시

testmans 2023. 7. 9. 10:36
반응형

애플리케이션 대 세션 대 캐시

위의 모든 사항에 적합한 사용 사례는 무엇입니까?세션과 캐시는 상당히 유사한 것 같고, 응용 프로그램을 많이 사용할 수 있을 것 같지 않습니다.

애플리케이션과 세션 상태는 매우 중요한 차이점이 있습니다.

응용 프로그램 상태는 ASP.NET 응용 프로그램의 모든 클래스에서 사용할 수 있는 데이터 저장소입니다.응용프로그램 상태는 서버의 메모리에 저장되며 데이터베이스에 정보를 저장하고 검색하는 것보다 빠릅니다.단일 사용자 세션에 고유한 세션 상태와 달리 응용 프로그램 상태는 모든 사용자세션에 적용됩니다.따라서 애플리케이션 상태는 사용자 간에 변경되지 않는 소량의 자주 사용되는 데이터를 저장하는 데 유용합니다.

응용 프로그램 상태 개요
세션 상태 개요

반면 캐싱을 사용하면 광범위한 서버 리소스가 필요한 개체를 메모리에 저장할 수 있습니다. 항목이 캐시되는 방법과 캐시되는 기간을 사용자 정의할 수 있는 강력한 기능을 제공합니다. 우선 순위 및 만료와 같은 광범위한 속성을 설정할 수 있습니다.

애플리케이션 데이터 캐싱 개요

유사하게 보일 수도 있지만 ASP.NET 응용 프로그램에서 가장 광범위한 의미로 수행할 역할이 서로 다르며 별개입니다.

세션은 사용자별입니다.사용자 간에 공유되지 않습니다.

애플리케이션 및 캐시 범위는 애플리케이션 전반에 걸쳐 있습니다.캐시가 만료될 수 있습니다.변경할 수 있는 데이터가 있는 경우 5분 동안 캐시에 저장할 수 있지만 정기적으로 업데이트되지 않는 데이터는 애플리케이션 변수에 저장할 수 없습니다.

세션은 사용자별 정보에 사용됩니다.일반적으로 사용자 이름, 사용자 기본 설정(예: 화면 이름, 카트 ID(판매 중인 항목), 이메일 등)을 저장합니다.

캐시는 일반적으로 모든 사용자가 공유하는 정보가 있을 때 사용됩니다.일반적으로 긴 프로세스나 DB에 대한 적중 횟수를 줄이기 위한 것입니다.IE에서 상위 n개의 아티클을 표시하려고 합니다.시간 제한을 설정할 수 있으므로 시간 주기 후 날짜가 새로 고쳐집니다.

응용프로그램 변수는 서버에 저장할 정적 정보에 적합합니다.미디어 파일이 있는 위치일 수 있습니다.

이러한 답변 중 어느 것도 캐쉬의 매우 중요한 속성을 명확하게 설명하지 못합니다. 캐쉬는 애플리케이션 범위를 가지고 있으며 모든 사용자가 공유합니다.캐시에 저장하는 모든 데이터는 모든 사용자가 사용할 수 있습니다.특정 사용자만 사용할 수 있도록 캐시에 데이터를 저장할 수 있지만 해당 사용자 고유의 캐시 키 값을 사용해야 합니다. Cache.Add("UserData" + userID, data...

다른 답변 중 어느 것도 지적하지 않은 기본 제공 프로세스 세션 개체에는 매우 중요한 제한이 있으며, 이는 높은 동시성 웹 사이트에서의 사용을 제한합니다.특히 코드에서 세션 항목을 변경하면 요청이 중지되고 세션 개체에 대한 모든 읽기 요청이 완료될 때까지 기다립니다.이 경우 캐쉬가 훨씬 더 나은 선택입니다.

나는 방금 모든 ASP.Net 웹 사이트가 느린 이유를 발견했고, 나는 그것에 대해 무엇을 해야 할지 생각하고 있습니다.

세션 대 캐시의 또 다른 점입니다.종속 개체를 변경할 때 세션에 저장된 데이터를 무효화하거나 다시 로드해야 하는 경우에는 이 작업이 어려울 수 있습니다.캐시가 더 나은 옵션일 수 있습니다.

언급URL : https://stackoverflow.com/questions/5096544/application-vs-session-vs-cache

반응형