메모리 운영
Maxmemory
메모리 사용량을 제한하는 방법으로 32bit / 64bit 환경에 따라 초기값이 다르다. 32bit에는 3GB를 사용가능한 반면 64bit에서는 초기값이 0(unlimited)이다. 제한이 없기 때문에 가상메모리(swap)까지 사용하게 되며 이는 성능 저하의 원인이 된다.
Maxmemory-policy
max-memory만큼 사용하게 될 때 메모리 정책에 따라 만들어진 키들이 삭제된다.
- noeviction : 메모리 제한이 도달한 상태에서 클라이언트가 더 많은 메모리를 사용하는 명령을 실행할 경우 오류를 리턴한다
- allkeys-lru : LRU 알고리즘을 사용하여 데이터 공간을 확보한다
- volatile-lru : LRU 알고리즘을 기반으로 expired가 설정된 키만 제거하여 공간을 확보한다
- allkeys-random : 무작위로 키를 삭제한다
- volatile-lru : expired가 설정된 키를 대상으로 무작위로 키를 삭제한다
- volatile-ttl : expired가 설정된 키를 제거하고 데이터를 추가할 공간 확보를 위해 ttl이 있는 키를 먼저 제거한다
- allkeys-lfu : LFU 알고리즘을 사용하여 데이터 공간을 확보한다
- volatile-lfu : LFU 알고리즘을 기반으로 expired가 설정된 키만 제거하여 공간을 확보한다