Redis FLUSHALL

Redis Server Course Redis Technical Support Redis Enterprise Server

Redis FLUSHALL

개요 槪要 Outline

레디스 서버의 모든 데이터(키와 값)를 삭제한다.

설명 說明 Explanation

Redis Server 4.0.0 부터 async 옵션을 사용할 수 있습니다. Async 옵션을 사용하면 별도의 쓰레드에서 background로 삭제하기 때문에 명령 응답 속도가 매우 빠릅니다.   아래 예에서 String key 1백만개를 flush할 경우 첫 번째는 1.18초 걸렸는데, async 옵션을 사용한 두 번째는 1ms 미만 걸렸습니다.

127.0.0.1:6000> flushall
OK
(1.18s)
127.0.0.1:6000> flushall async
OK

버전 6.2에 Sync 옵션이 추가되었습니다. 이전 버전까지는 옵션을 사용하지 않으면 디폴트로 Sync로 작동했습니다. 버전 6.2 conf 파일에 lazyfree-lazy-user-flush가 추가되어 디폴트 작동을 변경할 수 있습니다. lazyfree-lazy-user-flush 가 no 일 경우 디폴트 작동은 Sync이고 yes 일 경우 디폴트 작동은 Async 입니다.

참고 자료

  • 레디스 서버 쓰레드에 관한 설명
  • flushall async와 같이 별도의 쓰레드가 처리하는 UNLINK 명령에 관한 설명
  • 관련 소스: db.c emptyDb(), lazyfree.c emptyDbAsync()
  • db.c lazyfree.c

명령문 Command

flushall [async]

  • 이 명령은 version 1.0.0 부터 사용할 수 있다.
  • 버전 4.0에 Async 옵션이 추가되었습니다.
  • 버전 6.2에 Sync 옵션이 추가되었습니다.
  • 논리적 처리 소요시간은 O(N)입니다. N은 키의 개수입니다.   Async 옵션을 사용했을 경우 새로운 DB(hash table)을 생성해서 제공하고, 키 삭제는 별도 쓰레드에서 background로 처리하므로 응답시간은 O(1)입니다.
  • 이 문서는 버전 6.2.4를 기준으로 만들었습니다.
Clients for C Hiredis

<< FLUSHDB FLUSHALL STARTSYNC >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.