flushdb
Redis FLUSHDB
Redis Server Course | Redis Technical Support | Redis Enterprise Server |
---|
Redis FLUSHDB
개요 槪要 Outline
현재 사용중인(선택된) DB의 모든 데이터(키와 값)를 삭제한다.
설명 說明 Explanation
Redis Server 4.0.0 부터 async 옵션을 사용할 수 있습니다. Async 옵션을 사용하면 별도의 쓰레드에서 background로 삭제하기 때문에 명령 응답 속도가 매우 빠릅니다. 아래 예에서 String key 1백만개를 flush할 경우 첫 번째는 1.18초 걸렸는데, async 옵션을 사용한 두 번째는 1ms 미만 걸렸습니다.
127.0.0.1:6000> flushdb
OK
(1.18s)
127.0.0.1:6000> flushdb async
OK
OK
(1.18s)
127.0.0.1:6000> flushdb async
OK
버전 6.2에 Sync 옵션이 추가되었습니다. 이전 버전까지는 옵션을 사용하지 않으면 디폴트로 Sync로 작동했습니다. 버전 6.2 conf 파일에 lazyfree-lazy-user-flush가 추가되어 디폴트 작동을 변경할 수 있습니다. lazyfree-lazy-user-flush 가 no 일 경우 디폴트 작동은 Sync이고 yes 일 경우 디폴트 작동은 Async 입니다.
참고 자료
- 레디스 서버 쓰레드에 관한 설명
- flushdb async와 같이 별도의 쓰레드가 처리하는 UNLINK 명령에 관한 설명
- 관련 소스: db.c emptyDb(), lazyfree.c emptyDbAsync() db.c lazyfree.c
명령문 Command
flushdb [async]
- 이 명령은 version 1.0.0 부터 사용할 수 있다.
- 버전 4.0에 Async 옵션이 추가되었습니다.
- 버전 6.2에 Sync 옵션이 추가되었습니다.
- 논리적 처리 소요시간은 O(N)입니다. N은 DB에 있는 키의 개수입니다. Async 옵션을 사용했을 경우 새로운 DB(hash table)을 생성해서 제공하고, 키 삭제는 별도 쓰레드에서 background로 처리하므로 응답시간은 O(1)입니다.
- 이 문서는 버전 6.2.4를 기준으로 만들었습니다.
Clients for C | Hiredis |
<< DBSIZE | FLUSHDB | FLUSHALL >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.