애플리케이션 대 세션 대 캐시
위의 모든 사항에 적합한 사용 사례는 무엇입니까?세션과 캐시는 상당히 유사한 것 같고, 응용 프로그램을 많이 사용할 수 있을 것 같지 않습니다.
애플리케이션과 세션 상태는 매우 중요한 차이점이 있습니다.
응용 프로그램 상태는 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
'programing' 카테고리의 다른 글
미발견(약속)유형 오류: vuex에서 null('시작' 읽기) vue 3의 속성을 읽을 수 없습니다. (0) | 2023.07.09 |
---|---|
grid.arrange() 플롯을 파일에 저장하는 중 (0) | 2023.07.09 |
OpenXML C#을 사용하여 Excel에서 셀의 열 인덱스 가져오기 (0) | 2023.07.09 |
루비에서 YAML 파일을 구문 분석하려면 어떻게 해야 합니까? (0) | 2023.07.09 |
컴파일러가 프로그램의 시간 복잡성을 저하시키는 것이 합법입니까?이것이 관찰 가능한 행동으로 간주됩니까? (0) | 2023.07.09 |