Как удалить все ключи из кластера Redis - PullRequest
1 голос
/ 14 февраля 2020

Я хочу удалить все ключи из кластера redis с помощью быстрого процесса. Я знаю, как удалить ключи с помощью "redis-cli FLUSHALL". Но эта команда может быть медленной, когда набор данных большой. Я слышал, что все ключи можно очистить из кэша Redis, перезапустив сервис Redis. Я тестирую этот процесс на своем локальном ноутбуке ma c. Я выполняю следующие шаги: -

  1. Установка большого количества ключей на моем локальном сервере redis с помощью примера команды redis-cli SET mykey1 "Hello"
  2. Затем перезапуск redis служба "brew services restart redis" в надежде, что все ключи будут удалены при резервном копировании службы
  3. Затем получение ключей с помощью команды "redis-cli KEYS '*'"

Я все еще вижу ключи после шага-3

Ключи исчезают, только когда я даю эту команду -> redis-cli FLUSHALL? Как я могу очистить ключи, перезапустив службу redis локально на моем ноутбуке ma c, а затем попробую на серверах QA?

Ответы [ 3 ]

1 голос
/ 14 февраля 2020

Вы видите ключи после перезапуска, потому что включен режим персистентности RDB или AOF. См. https://redis.io/topics/persistence.

RDB включен по умолчанию. Чтобы отключить сохранение, вам нужно отредактировать ваш redis.conf или начать с redis-server --save "" --appendonly no

См. Есть ли способ сброса в кластере, чтобы все ключи от главного и подчиненного были удалены из базы данных о том, как использовать redis-cli для отправки команды всем узлам кластера.

Как указывает dizzyf, используйте FLUSHALL ASYNC, чтобы удаление выполнялось в фоновом режиме. Это создаст карты fre sh ha sh для каждой базы данных, в то время как старые удаляются (память восстанавливается) постепенно фоновым потоком.

0 голосов
/ 14 февраля 2020

Спасибо за ссылки. Это было очень полезно. Я смог добиться результата, внеся изменения в свой файл redis.conf с помощью -> redis-server --save "" и --appendonly no. Поэтому после этих изменений при повторном запуске службы redis ничего не сохраняется.

0 голосов
/ 14 февраля 2020

В redis 4.0 и более поздних версиях команды FLUSHALL ASYN C была введена как способ удалить все ключи неблокирующим образом. Решит ли это вашу проблему?

https://redis.io/commands/flushall

...