[Redis] 메모리 운영

메모리 운영

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가 설정된 키만 제거하여 공간을 확보한다
Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/19/Redis/memory-operating/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.