본문 바로가기

Spring

Redis 특정 인덱스 전체 데이터(키) 삭제 FLUSHDB / FLUSHALL / 주의사항 / 빠르게 삭제하기

 

redis-cli flushdb
redis-cli flushall

FLUSHDB – 연결된 현재데이터베이스의 키들을 삭제한다.

FLUSHALL – 모든 데이터베이스의 키들을 삭제한다.

(출처 : https://stackoverflow.com/questions/6851909/how-do-i-delete-everything-in-redis

===============================================================

특정 인덱스 삭제하는 방법 

select 1 >  flushdb 

 

sure, you can do this in via redis-cli.exe with the argument "flushall" to flush all data in redis or you can you "flushdb" just to flush the selected db. e.g. if you need to flush db 1 you the next commands - "select 1" to select db with index 1, "flushdb" to flush only selected db. please note, the default db index is 0 

( 출처 : https://stackoverflow.com/questions/35452081/flush-empty-db-in-stackexchange-redis)

 

===============================================================

주의사항 :

레디스는 단일스레드로 작동하기 때문에 많은 양의 데이터를 삭제하는

flushall 은 성능 지연 현상을 초래할 수 있다.  빅오O(N) 의 성능


운영환경에서 부득이하게 사용해야 할 경우 async 옵션을 적용하여 반영한다. Redis Server 4부터 async 옵션을 사용할 수 있으며, flushall 수행 시 별도의 쓰레드를 생성하여 background로 삭제하기 때문에 응답 속도가 매우 빠르고, 지연을 방지할 수 있다. 측정된 데이터를 기준으로 String key 백만개를 flush할 경우 Sync는 약 1초, Async는 1ms 미만이내에 명령이 수행된다.  (출처 https://waspro.tistory.com/697)