Redis FLUSHDB

Redis Server 教育
Redis Server Course
Redis 定期点検/技術支援
Redis Technical Support
Redis エンタープライズサーバ
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

버전 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 返事がかかってなれば、メールでお知らせします。