redis 데이터베이스를 비우는 방법?


164

지난 며칠 동안 redis로 놀고 있었고 재미있게 추가했습니다 .DB를 비울 수있는 방법이 있는지 알고 싶습니다 (기존 키 제거 ...) .
테스트하는 동안 많은 멤버로 여러 세트를 만들었고 심지어 이름을 기억하지 못하는 세트를 만들었습니다 (어떻게 그 사람들을 나열 할 수 있습니까?).
그들 모두를 제거하는 방법에 대한 아이디어가 있습니까?

답변:


197

두 가지 옵션이 있습니다.

  • FLUSHDB- 현재 활성화 된 데이터베이스를 지 웁니다.
  • FLUSHALL- 기존 데이터베이스를 모두 지 웁니다.

136

여기서 조심하십시오.

FlushDB는 현재 데이터베이스의 모든 키를 삭제하고 FlushALL은 현재 호스트의 모든 데이터베이스에있는 모든 키를 삭제합니다.


FlushDB를 사용하여 프로덕션 코드에서 특정 데이터베이스를 지우는 데 단점이 있습니까?
Alex Naspo

1
@AlexNaspo는 DB가 클수록 플러시하는 데 시간이 오래 걸리기 때문에 문제가 될 수 있습니다. 번호가 매겨진 (공유 된) 데이터베이스는 동일한 Redis 서버에서 관리하기 때문에 해당 기간 동안 다른 데이터베이스를 차단할 수 있습니다. 가능하면 공유 데이터베이스를 사용하지 말고 향후 보장되지 않기 때문에 (v3에서는 지원되지 않음) 공유 데이터베이스를 사용하지 마십시오. 자세한 내용은 여기를 참조하십시오 : redislabs.com/blog/…
Itamar Haber

@ItamarHaber 특정 형식과 일치하는 키 집합을 삭제하거나 만료하는 가장 효율적인 방법은 무엇입니까?
Alex Naspo

1
@AlexNaspo v2.8 이상을 사용하는 경우 SCAN과 DEL의 결합은 트릭을 훌륭하게 수행합니다. 그것을 수행하는 bash는 스크립트 여기를 참조하십시오 : stackoverflow.com/a/23399125/3160475
이타 마르 하버

$ redis-cli그런 다음 데이터베이스를 선택하십시오. 0을 선택 > select 0하고 db 0의 모든 키를 삭제합니다.> FLUSHDB
sagar junnarkar

31

redis-cli:

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redis Docs : FLUSHDB , FLUSHALL


30

tldr : flushdb하나의 데이터베이스를 flushall지우고 모든 데이터베이스를 지 웁니다.

현재 삭제

기본 또는 현재 선택된 데이터베이스 (보통`0)를

redis-cli flushdb

명확한 사양

특정 redis 데이터베이스를 (예 8: 내 대상 데이터베이스)로 삭제하십시오 .

redis-cli -n 8 flushdb 

모두 지우기

로 모든 redis 데이터베이스 삭제

redis-cli flushall

2

정답이 있지만 옵션을 하나 더 추가하고 싶습니다 (다운 타임 필요).

  1. Redis를 중지하십시오.
  2. RDB 파일을 삭제하십시오 (redis.conf에서 위치 찾기).
  3. Redis를 시작하십시오.

0

Redis cli를 열고 사용할 수있는 두 가지 옵션이 있습니다.

FLUSHDB-현재 선택된 DB의 모든 키를 삭제합니다. FLUSHALL-현재 선택된 데이터베이스뿐만 아니라 모든 기존 데이터베이스의 모든 키를 삭제합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.