Redis FLUSHALL

Redis Server 教育
Redis Server Course
Redis 定期点検/技術支援
Redis Technical Support
Redis エンタープライズサーバ
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 返事がかかってなれば、メールでお知らせします。