redis.conf
양이 겁나게 많은데, 주요 권장설정을 알아보고 알맹이만 쏙 빼먹자.
1. Maxclient 값을 충분히 높여라
최대로 접속 가능한 클라이언트 값으로 이 값 넘어서의 새로운 클라이언트 연결 시도는 모두 거부된다.
클러스터가 사용될 경우, 이 값이 공유된다.
실제 서비스에서 사용한다면, 이 값을 충분히 높여라 (5만 이상 권장, Default: 10,000)
2. RDB/AOF 설정을 비활성화하라.
AOF : Append Only File 의 약자로 Default 값이 'no' 이기 때문에 따로 건드리지 않아도된다.
RDB: 메인 메모리의 모든 데이터를 디스크에 dumpb 한다. *.rdb 파일이 생성된다.
3. 부하가 상당한 커맨드를 비활성화하라.
ex) Keys Command 는 O(N) 이므로 Disable 해야한다.
위험한 O(N) command List
- KEYS
- FLUSHALL
- FLUSHDB
- CONFIG
👉🏻 전체 장애의 90% 이상이 KEYS, SAVE 설정 사용으로 발생한다.
4. maxmemory 를 설정하라
메모리가 꽉 찬 경우 어떻게 Key Eviction 을 할 것인지에 대한 정책
maxmemory 2gb
maxmemory-policy volatile-lru
config | description | etc |
---|---|---|
volatile-lru | 만료 시간이 설정된 키 중 근사 LRU 로 삭제할 키지정 | AWS ElastiCache default |
allkeys-lru | 모든 키 중 근사 LRU 로 삭제할 키 지정 | Session 용도 적절 |
volatile-lfu | 만료 시간 설정된 키 중 근사 LFU 삭제 키 지정 | |
allekys-lfu | 모든 키 중 근사 LFU 삭제 키 지정 | |
volatile-random | 만료 시간 설정 키 중 임의로 삭제 키 지정 | |
allkeys-random | 모든 키 중 임의로 삭제할 키 지정 | |
volattile-ttl | 만료 시간이 가장 가까운 키 순으로 삭제 | |
noeviction | 키 삭제 X | Redis 수동 설치시 기본 값 maxmemory 도달 시 쓰기 명령에 에러 반환 |
LFU: Least Recently Used
LFU: Least Frequently Used
🔗 Reference
Evictions - Database Caching Strategies Using Redis
Evictions Evictions occur when cache memory is overfilled or is greater than the maxmemory setting for the cache, causing the engine to select keys to evict to manage its memory. The keys that are chosen are based on the eviction policy you select. By defa
docs.aws.amazon.com
'DataBase > Redis' 카테고리의 다른 글
[Redis] TTL - 어떤 방식으로 만료된 키를 제거할까? (0) | 2024.12.22 |
---|---|
[Redis] TTL - 언제 업데이트 될까? (0) | 2024.12.22 |
[Redis] DataStructure Lifecycle (0) | 2024.12.19 |