Programing

응용 프로그램 대 세션 대 캐시

lottogame 2020. 11. 11. 07:52
반응형

응용 프로그램 대 세션 대 캐시


위의 모든 항목에 적합한 사용 사례는 무엇입니까? 세션과 캐시가 상당히 비슷해 보이며 응용 프로그램에 많이 사용할 것이라고 생각할 수 없습니다.


응용 프로그램과 세션 상태에는 매우 중요한 차이가 있습니다.

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

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

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

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

비슷하게 보일 수 있지만 완전히 별개이며 가장 넓은 의미에서 ASP.NET 응용 프로그램에서 수행 할 역할이 다릅니다.


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

애플리케이션 및 캐시 범위는 애플리케이션 전체입니다. 캐시가 만료 될 수 있습니다. 변경할 수있는 데이터가있는 경우 예를 들어 5 분이라고 가정하면 캐시에 저장할 수 있고 정기적으로 업데이트되지 않는 데이터가있는 경우 응용 프로그램 변수에 넣을 수 있습니다.


세션은 사용자 특정 정보에 사용됩니다. 일반적으로 사용자 이름, 화면 이름과 같은 사용자 기본 설정, 장바구니 ID (무엇을 판매하는 경우), 이메일 등을 저장합니다.

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

애플리케이션 변수는 서버에 저장하려는 정적 정보에 적합합니다. 미디어 파일이있는 위치 일 수 있습니다.


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


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

방금 모든 ASP.Net 웹 사이트가 느린 이유를 발견했고 이에 대해 어떻게해야할지 고민 중입니다.

참고 URL : https://stackoverflow.com/questions/5096544/application-vs-session-vs-cache

반응형