ASP.NET 의 Cache 사용 설명

2454 단어 ASP.NETCache
Cache 는 바로 캐 시 입 니 다.많은 사람들 이 그 에 대한 첫 인상 이 저 와 같 을 것 이 라 고 생각 합 니 다.그 는 반드시 시스템 의 성능 과 운행 속 도 를 향상 시 킬 수 있 을 것 이 라 고 생각 합 니 다.확실히넷 이 캐 치 를 내 놓 은 취 지 는 확실히 이렇다.그렇다면 cache 는 어떻게 시스템 성능 과 운행 속 도 를 향상 시 킵 니까?모든 상황 에서 cache 를 사용 하면 성능 을 향상 시 킬 수 있 지 않 습 니까?캐 시가 많이 쓰 면 좋 지 않 을까요?저 는 최근 에 연구 개발 한 프로젝트 에서 느 낀 바 가 있 습 니 다.적어 서 정리 로 삼 아 여러분 과 함께 토론 하고 토론 할 수 있 기 를 바 랍 니 다.잘못된 부분 이 있 으 면 여러분 의 비판 과 지적 을 바 랍 니 다.
  
1.캐 시가 어떻게 일 하 는 지
  
Cache 는 서버 에 분 배 된 공공 메모리 입 니 다.
  
공공 이란 cache 를 만 들 면 모든 클 라 이언 트 브 라 우 저 는 배경 코드 를 통 해 그 를 방문 할 수 있 습 니 다.그 는 모든 사용 자 를 대상 으로 합 니 다.상대 적 으로 session 도 서버 의 메모리 이지 만 그 는 하나의 사용 자 를 대상 으로 합 니 다.그 는 서버 의 메모리 블록 이다.즉,모든 cache 가 생 성 되 자마자 서버 자원 을 점용 한 것 이다.그래서 그런 점 에서 우 리 는 cache 가 많 을 수록 좋 은 것 이 아니 라 고 말 할 수 있다.
  
cache 는 시간 제한 이 있 습 니 다.서버 가 설정 한 만 료 시간 을 초과 하면 서버 에서 회수 합 니 다.
  
c.cache 는 모든 대상 을 저장 할 수 있 습 니 다.
  
2.Cache 생 성 및 폐기 방법
  
cache 생 성
  
네.Net 환경 에서 Cache.Insert(string key,object o)방법 으로 만 듭 니 다.그 중에서 key 는 cache 의 ID 를 대표 하고 o 는 cache 에 저 장 된 대상 을 대표 합 니 다.
  
캐 시 를 소각 합 니 다.
  
방법 을 통 해 Cache.Remove(string key)에서 key 는 cache 의 ID 를 대표 합 니 다.
  
cache 를 호출 합 니 다.
  
Cache 는 포장/분해 작업 을 지원 합 니 다.DataSet 대상 ds 를 Cache.Insert("dsCache",ds)를 통 해 Cache 에 저장 할 수 있다 면,상 자 를 뜯 어서 DataSet ds=(DataSet)Cache["dsCache"]를 사용 하여 접근 할 수 있 습 니 다.
  
3.캐 치 는 언제 쓰 나
  
Cache 는 일반적으로 데이터 가 비교적 고정 적 이 고 자주 사용 하 는 곳 에 사용 된다.예 를 들 어 판매 저장 시스템 에서 제품 정 보 를 cache 에 저장 할 수 있 고 사용자 가 제품 정 보 를 호출 할 때 cache 를 호출 하면 된다.그러면 사용자 와 데이터 뱅 크 의 상호작용 을 어느 정도 줄 이 고 시스템 의 성능 을 향상 시 킬 수 있다.반면에 cache 는 데이터 변동 이 빠 르 고 사용 범위 가 매우 좁은 곳 에 사용 하기에 적합 하지 않다.예 를 들 어 구체 적 인 구 매 서 를 cache 에 저장 합 니 다.
  
4.cache 호출 주의사항
  
캐 시 는 시간 제한 이 있어 요.서버 설정 이 만 료 되면 서버 에서 회수 합 니 다.cache 가 회수 되면 대응 하 는 메모리 블록 이 비 워 지고 cache[cachekey]를 통 해 대상 에 접근 할 때 되 돌아 오 는 것 은 null 값 입 니 다.그래서 다음 과 같은 호출 에 이상 이 생 길 수 있 습 니 다.
  

  DataSet ds = (DataSet)Cache[“cacheds”];
  
  DataRow dr = ds.Table[0].Row[0]; //  ,ds null ,    0。
  
정확 한 문법 은 다음 과 같다.
  
  

DataSet ds
  
  If(Cache[“cacheds”] != null)
  
  {
  
  ds = (DataSet)Cache[“cacheds”];
  
  }
  
  Else
  
  {
  
  ds= GetDsFromDataBase();
  
  }
  
  DataRow dr = ds.Table[0].Row[0];

좋은 웹페이지 즐겨찾기