OOM: OOM command not allowed when used memory > 'maxmemory'
Redis의미
Redis의 메모리 사용량이 maxmemory 한도에 도달했고, eviction 정책이 새 데이터를 위한 공간을 확보할 수 없어 쓰기 명령이 거부된다. 메모리가 가득 차 쓰기가 불가능하다.
원인
maxmemory 한도 초과, noeviction 정책 선택(키가 전혀 제거되지 않음), TTL 없는 데이터의 지속적인 증가, 메모리 누수, 또는 한도에 비해 부족한 RAM.
해결 방법
메모리 사용량을 확인한다: INFO memory 및 MEMORY USAGE. 적절한 eviction 정책(예: allkeys-lru 또는 volatile-lru)을 선택한다: CONFIG SET maxmemory-policy allkeys-lru. 키에 TTL을 설정해 자동으로 정리되게 한다. maxmemory/RAM을 늘린다. 큰 키를 찾아 줄인다(redis-cli --bigkeys). 불필요한 데이터를 삭제한다.
같은 데이터베이스의 다른 항목
- WRONGTYPEWRONGTYPE Operation against a key holding the wrong kind of value
- NOAUTHNOAUTH Authentication required
- WRONGPASSWRONGPASS invalid username-password pair or user is disabled
- READONLYREADONLY You can't write against a read only replica
- MASTERDOWNMASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'