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

164

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

Люк
источник

Ответы:

197

У вас есть два варианта:

  • FLUSHDB - очищает текущую активную базу данных
  • FLUSHALL - очищает все существующие базы данных
plaes
источник
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
выбираю
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. Стоп Редис.
  2. Удалить RDB-файл (найти его в redis.conf).
  3. Запустите Redis.
Denys
источник
0

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

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

бехзад бабей
источник