NHN FORWARD에서 소개하는 redis에 대한 정리를 한 글입니다. 해당 새션은 다음 링크에서 확인 가능합니다! >> https://forward.nhn.com/2021/sessions/16 [김가림 / NHN data 운영팀 DBA], 이미지는 새션 내용에서 캡쳐한 사진입니다.
celery, celery beat 생각해보자!
BGREWRITEAOF
커멘드를 이용해 CLI 창에서 수동으로 AOF 파일 재작성BGSAVE
커멘드를 이용해 CLI 창에서 수동으로 RDB 파일 재작성SAVE
커멘드는 절대 사용 XSAVE 900 1
-> 900초 동안 1개 이상 키가 변경되었을 때 RDB 파일 재작성 하라는 의미이다. APPENDFSYNC 옵션이 everysec인 경우
최대 1초 사이의 데이터 유실 가능성이 있다. (default 세팅 값임)replicaof
커맨드를 이용해 간단하게 복제 연결replicaof no one
으로 복제를 일단 끊어야 하고REDIS는 Single Thread로 동작한다. -> 즉 한 사용자가 오래걸리는 커맨드 요청할 경우 다른 로직은 기다릴 수 밖에 없음 -> O(N) 의 수행을 경계해라!
개발계에서는 상관 없는데 운영 환경에서 실수로 치는 경우가 있다. 그래서 그냥 오래 걸리는 커맨드를 운영계에서는 사용안하는게 낫다!
keys *
같은 모든 key 보는 커멘드 대신 scan 0
으로 대체 -> "재귀적"으로 key를 순차 호출 가능함
Hash나 Sorted Set 등 자료 구조 내부 여러개 아이템 저장 가능
hgetall
-> hscan
: keys와 같은 이유del
커멘트 치면 수행 오래걸린다, 키 지우는 동안 아무것도 못함 -> unlink
의 경우에는 back ground 작업으로 키를 없애주기 때문에 이 명령어로 대체 추천삭제에 대해 조금 더 알아보자면, Redis는 4.0.0 버전부터 UNLINK
라는 커맨드가 있는데 DEL
과 동일하게 특정 key를 삭제하는 기능을 수행한다. 더 정확하게는 UNLINK
의 경우 실제로 key를 바로 삭제하진 않으며, 해당 key를 keyspace에서 제거(unlink)할 뿐이다. 실제 메모리 상의 삭제는 다른 쓰레드에서 비동기로 이뤄진다.
CONFIG SET activedefrag yes