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
'DataBase > Redis' 카테고리의 다른 글
[Redis] TTL - 어떤 방식으로 만료된 키를 제거할까? (0) | 2024.12.22 |
---|---|
[Redis] TTL - 언제 업데이트 될까? (0) | 2024.12.22 |
[Redis] DataStructure Lifecycle (0) | 2024.12.19 |