Как удалить все ключи из кластера Redis

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

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

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

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


person RAHUL SRIVASTAVA    schedule 13.02.2020    source источник


Ответы (3)


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

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

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

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

person LeoMurillo    schedule 14.02.2020

В Redis 4.0 и выше была введена команда FLUSHALL ASYNC как способ неблокирующего удаления всех ключей. Решит ли это вашу проблему?

https://redis.io/commands/flushall

person dizzyf    schedule 14.02.2020

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

person RAHUL SRIVASTAVA    schedule 14.02.2020