2009-08-28 2 views
0

인사말. 동료들.ASP.NET MVC의 데이터 캐싱 상점

ASP.NET MVC를 사용하여 다양한 데이터베이스 테이블에서 검색된 데이터를 캐싱하는 방법을 연구하고 있습니다. 우리는 엄청난 양의 데이터를 하루에 한 번만 업데이트하고 그 이후는 정적입니다. 이것은 다양 할 수 있지만 일반적으로 사용자 (직원), 부서, 사무실, 위치 등의 목록입니다.

제 질문은 데이터를 처음부터 검색하는 방법입니다. ? 어디에서 보관합니까? (텍스트 파일 또는 실제 코드?) 캐시를 업데이트해야하는지 여부를 결정하는 것은 무엇입니까? 개체 지향적 인 접근 방식을 선호하므로 데이터 행을 개체로 처리 할 수 ​​있습니다. 이미 MVC 응용 프로그램에서 LINQ를 사용하여 손으로 만든 모델이 있습니다. 또한 캐시가 더러운 지 어떻게 확인해야합니까? 데이터베이스가 무언가를해야합니까, 아니면 애플리케이션이 무언가를해야합니까? 예를 들어 행이 업데이트되면 데이터베이스 트리거가 변경되어 변경 사항이 있음을 나타내는 무언가를 수행하거나 (아마도 텍스트 파일에 쓸 수 있습니까?) 또는 애플리케이션이 변경된 사항을 신속하게 확인해야합니까? 주위에 여러 가지 방법이 있다는 것을 알고 있지만 권장되는 방법이 있습니까? (AN 데이터의 각 유형에 대한 모든 데이터 항목과 정적 객체 (배열,리스트, 해시 맵 등을))

+3

http://stackoverflow.com/questions/385986/caching-in-asp-net-mvc – grenade

+0

아무 것도 모른다는 말처럼, 가장 먼저 살펴 봐야 할 것은 OutputCacheAttribute - http://msdn.microsoft입니다. com/ko-kr/library/system.web.mvc.outputcacheattribute.aspx. 분명히 그것은 당신의 모든 필요를 충족시키지 못할 것이지만 그것들 중 일부를 만날 수도 있습니다. – RichardOD

답변

0

을 하나 잡고,

내가 캐싱 제로 경험을 가지고, 그래서 부드럽게 고려 직원을위한 배열, 부서의 다른 배열 등)를 사용하거나 서버 캐시를 사용하여 정의 된 키를 사용하여 데이터 컨테이너를 저장할 수 있습니다. 캐시를 사용하는 것은 꽤 간단하고 일반적으로 많이 사용됩니다.

캐시 개체를 사용하면 만료 (키의 마지막 터치로 절대 또는 시간 지정) 및 캐시 종속성 (FS 파일을 기반으로 캐시 항목을 재설정 할 수 있음)을 지정할 수 있습니다.

보다 복잡한 시나리오를 만들 수 있습니다 (예 : 특정 항목의 캐시 크기를 제한하여 만료).

0

다른 언급과 마찬가지로 캐시를 사용하고 테이블에 의존하여 캐시를 무효화해야합니다.

당신이 스스로에게 물어보아야 할 한 가지는 데이터 쿼리 방법입니다. 만약 당신이 그것에 대한 SQL의 힘이 필요하다면, 캐시는 당신의 방법으로 얻을 수 있습니다. 데이터를 필터링, 페이지 및 정렬해야하는 경우 캐시에서 결과를 얻은 후 sql 또는 linq을 사용하여 데이터의 위치를 ​​결정해야합니다. 대답은 주로 결과 집합에 대한 쿼리를 실행해야하는 시간에 달려 있습니다.