Apache HTTP Server Version 2.0

Apache > HTTP Server > Documentation > Version 2.0 > 모듈

# 아파치 모듈 mod_mem_cache

가능한 언어: en | ja | ko

설명: | URI를 키로 사용하여 내용을 캐쉬한다.
상태: | Experimental
모듈명: | mem_cache_module
소스파일: | mod_mem_cache.c

### 요약

이 모듈은 실험적인 상태이다. 문서는 아직 작업중이다...

이 모듈을 사용하려면 `mod_cache`가 필요하다. 이 모듈은 `mod_cache`를 지원하며 메모리기반 저장관리자를 제공한다. `mod_mem_cache`는 파일기술자를 캐쉬에 저장하거나 객체를 힙 공간에 캐쉬하는 두가지 방식으로 동작한다. `mod_mem_cache`는 직접 서버가 생성한 페이지를 캐쉬하거나 `ProxyPass`로 설정한 (역프록시(reverse proxy)) `mod_proxy`의 뒷단 서버내용을 캐쉬할때 주로 사용한다.

내용은 URI를 키로 사용하여 캐쉬에 저장하고 가져온다. 접근을 제어하는 내용은 캐쉬에 저장하지 않는다.

### 지시어들

### 참고

- `mod_cache`
- `mod_disk_cache`

## MCacheMaxObjectCount 지시어

설명: | 캐쉬에 저장할 수 있는 최대 객체개수
문법: | `MCacheMaxObjectCount value`
기본값: | `MCacheMaxObjectCount 1009`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheMaxObjectCount` 지시어는 캐쉬할 수 있는 최대 객체개수를 설정한다. 이 값은 해쉬테이블을 만들때 사용한다. 새로운 객체를 캐쉬에 추가해야 하는데 최대 객체개수에 도달하였다면, 새로운 객체를 캐쉬할 수 있도록 다른 객체를 제거한다. `MCacheRemovalAlgorithm`으로 지정한 알고리즘을 사용하여 제거할 객체를 선택한다.

### 예제

`MCacheMaxObjectCount 13001`

## MCacheMaxObjectSize 지시어

설명: | 캐쉬에 저장할 문서의 최대 크기 (바이트 단위)
문법: | `MCacheMaxObjectSize bytes`
기본값: | `MCacheMaxObjectSize 10000`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheMaxObjectSize` 지시어는 캐쉬에 저장할 문서의 최대 크기를 바이트 단위로 지정한다.

### 예제

`MCacheMaxObjectSize 6400000`

### Note

`MCacheMaxObjectSize` 값은 `MCacheMinObjectSize` 지시어로 지정한 값보다 커야 한다.

## MCacheMaxStreamingBuffer 지시어

설명: | 응답을 캐쉬안한다고 결정하기 전까지 메모리 버퍼에 저장할 스트림 응답의 최대 크기
문법: | `MCacheMaxStreamingBuffer size_in_bytes`
기본값: | `MCacheMaxStreamingBuffer 100000과 MCacheMaxObjectSize 중에 작은 값`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheMaxStreamingBuffer` 지시어는 응답이 너무 커서 캐쉬할 수 없을때까지 버퍼에 저장할 스트림 응답의 최대 바이트수를 설정한다. 스트림 응답(streamed response)은 전체 내용을 즉시 알 수 없고 `Content-Length`도 모르는 응답이다. 프록시된 응답이나 CGI 스크립트의 출력이 스트림 응답에 속한다. 기본적으로 `Content-Length` 헤더가 없다면 스트림 응답을 캐쉬에 저장하지 않는다. 이유는 캐쉬에 저장하기에 너무 큰 응답의 일부를 버퍼에 저장하기위해 많은 메모리를 낭비하지 않기위해서이다. `MCacheMaxStreamingBuffer` 지시어를 사용하면 `Content-Length`가 없는 스트림 응답을 지정한 크기까지만 버퍼에 저장한다. 최대 크기를 넘어서면 버퍼 내용을 버리고 캐쉬하지 않는다.

### 주의:

`MCacheMaxStreamingBuffer`에 0이 아닌 값을 설정하여도 클라이언트로 응답을 늦게 보내지 않는다. `mod_mem_cache`는 스트림 응답의 일부를 버퍼에 복사하자마자 클라이언트로 보내기위해 다음 출력필터로 보낸다.

`# 스트림 응답을 64KB까지 캐쉬한다:
MCacheMaxStreamingBuffer 65536`

## MCacheMinObjectSize 지시어

설명: | 캐쉬에 저장할 문서의 최소 크기 (바이트 단위)
문법: | `MCacheMinObjectSize bytes`
기본값: | `MCacheMinObjectSize 0`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheMinObjectSize` 지시어는 캐쉬에 저장할 문서의 최소 크기를 바이트 단위로 지정한다.

### 예제

`MCacheMinObjectSize 10000`

## MCacheRemovalAlgorithm 지시어

설명: | 캐쉬에서 제거할 문서를 찾는 알고리즘
문법: | `MCacheRemovalAlgorithm LRU|GDSF`
기본값: | `MCacheRemovalAlgorithm GDSF`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheRemovalAlgorithm` 지시어는 캐쉬에서 제거할 문서를 찾는 알고리즘을 지정한다.

`LRU` (Least Recently Used)
  `LRU`는 가장 오래동안 접근하지 않은 문서를 먼저 제거한다.
`GDSF` (GreadyDual-Size)
  `GDSF`는 캐쉬 실패(cache miss) 비용과 문서의 크기를 가지고 캐쉬한 문서에 우선순위를 부여한다. 가장 우선순위가 낮은 문서를 먼저 제거한다.

### 예제

`MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU`

## MCacheSize 지시어

설명: | 캐쉬에 사용할 최대 메모리량 (KByte 단위)
문법: | `MCacheSize KBytes`
기본값: | `MCacheSize 100`
사용장소: | 주서버설정
상태: | Experimental
모듈: | mod_mem_cache

`MCacheSize` 지시어는 캐쉬에 사용할 최대 메모리량을 KByte 단위로 (1024 바이트 단위) 설정한다. 새로운 객체을 캐쉬에 추가해야 하는데 객체의 크기가 남은 메모리보다 크다면 새로운 객체을 캐쉬할 수 있을때까지 다른 객체를 제거한다. `MCacheRemovalAlgorithm`으로 지정한 알고리즘을 사용하여 제거할 객체를 선택한다.

### 예제

`MCacheSize 700000`

### 주의

`MCacheSize` 값은 `MCacheMaxObjectSize` 지시어로 지정한 값보다 커야 한다.

가능한 언어: en | ja | ko