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 답글이 올라오면 이메일로 알려드리겠습니다.

패턴으로 값을 조회하고 삭제할 수 있어요.
리스트에서 "lls mylist user*" 이렇게 조회할 수 있구요.
user가 들어간 값들을 삭제하려면 "lrm mylist user*" 이렇게 하면 됩니다.
List에서는 LLS, LRM, Set에서는 SLS, SRM, ZSet에서는 ZLS, ZRM, Hash에서는 HLS, HRM 을 사용하면 됩니다.
게다가 LS는 소트 기능까지 있습니다. 한번 사용해 보세요. ^^
궁금하신 사항이 있으면 여기로 redisgate@gmail.com 메일 주세요.
 
close
IP를 기반으로 보여집니다.