Redis Eviction

728x90

Redis에서 데이터를 저장할 때 메모리가 부족할 경우 "eviction"이 발생할 수 있다.

Eviction은 Redis가 메모리를 확보하기 위해 일부 데이터를 제거하는 프로세스를 의미하고, 일반적으로 이러한 eviction은 다음과 같은 이유로 발생할 수 있다..

  1. 메모리 한계 도달: Redis는 메모리가 가득 차면 eviction 정책을 트리거하여 데이터를 삭제한다. 이때 Redis는 설정된 eviction 정책에 따라 어떤 데이터를 삭제할지 결정한다.
  2. maxmemory 설정: Redis에서는 메모리 사용량을 제한하는 maxmemory 옵션이 있고, 이 옵션을 설정하면 Redis는 설정된 한계에 도달했을 때 eviction을 수행하여 메모리 사용량을 제한한다.
  3. expire 설정: 데이터가 만료되면(설정된 TTL이 만료되는 경우) Redis는 eviction을 수행하여 만료된 데이터를 삭제한다.
  4. LRU(Least Recently Used) 정책: Redis는 LRU 정책을 사용하여 가장 최근에 사용되지 않은 데이터를 삭제한다. 이는 데이터가 오랫동안 사용되지 않은 경우 eviction을 유발할 수 있다.

Eviction은 메모리 관리를 위해 필수적인 과정이지만, 잘못된 eviction 정책 설정 또는 메모리 부족으로 인해 예상치 못한 데이터 손실이 발생할 수 있다. 따라서 Redis를 운영할 때는 메모리 사용량을 모니터링하고 적절한 eviction 정책을 설정하여 데이터 손실을 방지해야 한다.

 

Redis Eviction 을 방지하는 가장 쉬운 방법은 메모리를 늘리면 된다..

728x90