redis key 모두 지우기 (flush all)

유진세·2022년 6월 26일
0

레디스 키 모두 지우기

redis 를 운영하다보니 자꾸 더러워 지고 있다.....
우리는 다행히(?)도 redis 를 캐쉬처럼만 쓰고 있기 때문에
싹다 지워도 괜찮다고 한다.....(정말?)

그래서 지워봤다 ㅋㅋㅋ 다행히도 괜찮았다고 한다.....
근데 처음에 좀 삽질을 해서 ㅠㅠ.....
Cluster 에서는 flushdb 명령이 아니고 flushall 을 써야 한다.
(맨 아래 cluster 용 명령으로 확인 / 아래 명령은 여전히 단독db 에서만 동작)

127.0.0.1:6379> flushall
OK
(1.58s)
127.0.0.1:6379> flushall async
OK

async 모드는 말 그대로 백그라운드에서 수행하기 때문에 redis 가 멈추지 않는다.
속도가 무려 O(1) 이다 (안쓰면 O(n))
헐? 어떻게 라고 생각할 수 있겠지만
사실 아예 새로운 DB 를 만들고 거기서 시작하는거라서 O(1) 이고
백그라운드에서 기존 DB 를 열심히 지우고 있는다
디스크를 보면 용량이 바로 줄어들지 않는데
딴짓 하고 다시 보면 줄어들어 있는 것을 볼 수 있을 것이다

Cluster 가 아니면 flushdb 도 같긴 할텐데....
여튼 Cluster 쓰는 상황에서 flushdb 썼다가 일부만 지워져서 넘나 놀란것
다음에는 실수하지 말아야지 ㅠㅠ

(전혀 위에 내용이 아니었 ㅋㅋㅋ ㅠ ㅠ....)


하지만 작업은 실패했고 지구는 멸망했다.....는 아니고
추가 내용 작성
redis-cli 에서 --cluster call 이라고 옵션을 주면
전체 클러스터에 해당 명령을 날린다.
아래 명령어로 한방에 클리어함

# 아래 명령으로 클러스터의 ip 확인하고 명령을 날리자
$ redis-cli cluster nodes
# redis-cli --cluster call 레디스클러스터노드IP:포트 명령어
$ redis-cli --cluster call 10.129.8.88:6379 flushall async
$ redis-cli --cluster call 10.129.8.88:6379 dbsize

0개의 댓글