카테고리

분류 전체보기 (510)
문학 (128)
찬양 콘티(Continuity) (80)
Business as heritage (6)
IT . Web (149)
Photo (127)
etc. (20)
Total357,714
Today33
Yesterday98
*20121219 국치가 회복될 사건이 올 때까지 블로그 양쪽은 조의를 표하는 검정색입니다.
Tistory 로고 이미지 티스토리 가입하기!









블로그 이미지

회사 애플리케이션을 모니터링하다가 왠지..(예감은 현실로 다가온다) 캐싱 타임이 제 의도와는 좀 다르다는 사실을 발견해서 자료를 찾다가 알게된 내용을 공유합니다.

저는 ASP.NET에서 할 수 있는 두 가지 타입의 캐싱 중에서, TimeSpan을 이용한 슬라이딩 만료 타입만 사용하고 있었더라구요.

하지만 사실 두 가지가 존재하고, 제가 관리하는 시스템에서도 두 가지 모두가 필요한 게 맞았습니다.

그런데 영어를 잘 하진 않지만 막 답답할 정도는 아니라고 생각해왔으나(어디까지나 상상) NoSlidingExpiration 프로퍼티의 이름을 봤을 땐 뭐라는 것인가... 라는 생각 밖에 안들더군요-_-a

소스를 보면 두 가지를 좀 더 명확히 볼 수 있습니다. 전세계의 개발자 여러분 주절주절하지 말고 코드로 말합시다.(구글링 할 때마다 속으로 드는 생각ㅋㅋ)

System.Web.Caching

String strToCaching = "I always care.";

//슬라이드 만료방식
cache.Insert("캐싱아이디_산다라박", strToCaching, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(10));

//절대시간 만료방식
cache.Insert("캐싱아이디_씨엘", strToCaching, null, DateTime.Now.AddMinutes(10), Cache.NoSlidingExpiration);

두 가지가 어떻게 다르냐면,

절대시간 만료방식은 말 그대로 지정된 DateTime과 동일한 시간이 되면 캐싱을 만료합니다. 단순하죠.

그런데 슬라이딩 방식은 좀 더 재미있습니다.

슬라이딩에서 지정하는 TimeSpan은, 지정된 시간 동안 캐싱된 데이터에 대한 요청이 들어오지 않으면 만료하겠다는 설정입니다.

위의 예에서는 10분이 잡혀있는데, 감질맛 나게 계속 9분 59초마다 사용자가 드문드문 캐싱된 데이터를 요청하면... 이 데이터는 아침에 캐싱된 뒤로 저녁에 사람들 뜸해질때까지 만료되지 않습니다.

주로 잘 변하지 않는 데이터에 적합하고, 메모리 관리에도 용이합니다. 사람들이 잘 찾지 않는 데이터는 자동적으로 캐싱 대상에서 제외되고 주로 요청되는 데이터는 잦은 반복 캐싱 없이도 유지되니까요. 좀 더 복잡하게 설계되었지만 유용한 방식입니다.

그럼.. IT 여러분 오늘도 몸값 올립시다. 방법은.. 정해진 자원으로 최고의 효율을 끌어올리는 IT Manager가 된다. 사람처럼 생긴 IT Tool이 되지 맙시다. 파이팅!


저작자 표시
신고
Posted by One of Remnants
TAG , ,

댓글을 달아 주세요

  1. 2010.08.03 11:38 신고 asp.net  댓글주소  수정/삭제  댓글쓰기

    감사합니다 ^^

달력

« » 2017.10
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

최근에 받은 트랙백

글 보관함