우아한 Redis - 강대명
11월 21일 우아한형제들(잠실)에서 강대명님의 Redis 세미나가 있었습니다.
주요 포인트
- Redis는 자료구조가 Atomic 하기 때문에 Race Condition을 피할 수 있다.
- SortedSet의 Score는 실수형이기 때문에 부동 소수점에 유의하자.
- 하나의 컬렉션에 너무 많은 아이템을 담으면 좋지 않다. 수천개가 적당함.
- Expire는 Collection에 걸림
- 메모리 관리를 잘하자. Swap이 발생하면 메모리 Page 접근시마다 느려짐
- 큰 메모리를 사용하는 instance 하나보다 적은 메모리를 사용하는 여러 instance 여러개가 안전함
- 데이터의 사이즈가 다양한 것 보다는 유사한게 유리하다.
- 메모리를 줄이기 위해서 Ziplist를 이용하자.
- O(N) 명령어를 자제하자 (하단에 대표 명령어들)
- KEYS는 scan 명령어로 대체할 수 있다.
- Collection의 모든 item을 가져와야 할 때
- 자체 기능을 이용해 scan을 한다.
- 여러개의 작은 collection으로 저장한다.
redis.conf 권장 설정
- Maxclient: 50000
- RDS/AOF 설정 off
- 특정 commands off
- keys
- AWS의 ElasticCache는 이미 하고있음
- 전체 장애의 90% 이상이 KEYS와 SAVE 설정을 사용해서 발생
- 적절한 ziplist 설정
자제해야하는 대표적 O(N) 명령어들
- KEYS
- FLUSHALL, FLUSHDB
- Delete Collections
- Get All Collections
'개발 > Linux,Server' 카테고리의 다른 글
Nginx logrotate후에 로깅이 안되는 문제 (Nginx not logging after logrotate) (0) | 2022.04.27 |
---|---|
맥에서 zip 압축해제 오류 (오류 22 - 유효하지 않은 변수, Illegal byte sequence) (0) | 2020.04.01 |
Nginx에서 upstream서버 keealive 설정 (3) | 2019.04.30 |
Nginx socket 개수 확인 (0) | 2019.04.26 |
리눅스 설치일자 확인하기 (0) | 2019.04.12 |