Как очистить базу данных redis?


164

Я играл с Redis (и добавлю немного веселья) в течение последних нескольких дней, и я хотел бы знать, есть ли способ легко очистить БД (удалить наборы, существующий ключ ....) ,
Во время моих тестов я создал несколько наборов с большим количеством участников, даже создал наборы, названия которых я не помню (хотя как я могу перечислить этих парней?).
Есть идеи о том, как избавиться от них всех?

Ответы:



136

Будьте осторожны здесь.

FlushDB удаляет все ключи в текущей базе данных, в то время как FlushALL удаляет все ключи во всех базах данных на текущем хосте.


Есть ли недостаток в использовании FlushDB для очистки конкретной базы данных от производственного кода?
Алекс Наспо

1
@AlexNaspo потенциально проблематичен, поскольку чем больше ваша БД, тем дольше она будет очищаться. Поскольку нумерованные (общие) базы данных управляются одним и тем же сервером Redis, это может заблокировать другие ваши базы данных на этот срок. Если возможно, воздержитесь от использования общих баз данных из-за этого, а также потому, что они не рассчитаны на будущее (не поддерживаются в v3). Смотрите здесь для более подробной информации: redislabs.com/blog/...
Итамар Haber

@ItamarHaber Каков наиболее эффективный способ удаления или истечения срока действия набора ключей, которые соответствуют определенному формату?
Алекс Наспо

1
@AlexNaspo, если вы используете v2.8 +, комбинация SCAN и DEL прекрасно справится с задачей. Смотрите здесь для сценария bash, который делает это: stackoverflow.com/a/23399125/3160475
Итамар Хабер

$ redis-cliзатем выберите базу данных. Я > select 0> FLUSHDB
выбираю


30

tldr: flushdbочищает одну базу данных и flushallочищает все базы данных

Очистить ТОК

Удалить базу данных по умолчанию или текущую выбранную (обычно `0) с помощью

redis-cli flushdb

Очистить УКАЗАТЬ

Удалить конкретную базу данных redis с помощью (например, 8моей целевой базы данных):

redis-cli -n 8 flushdb 

Очистить все

Удалить все базы данных Redis с

redis-cli flushall

2

Есть правильные ответы, но я просто хочу добавить еще один вариант (требует простоя):

  1. Стоп Редис.
  2. Удалить RDB-файл (найти его в redis.conf).
  3. Запустите Redis.

0

откройте свой Redis Cli и там два возможных варианта, которые вы могли бы использовать:

FLUSHDB - Удалить все ключи текущей выбранной БД. FLUSHALL - удалить все ключи всех существующих баз данных, а не только выбранную в данный момент.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.