Что на самом деле FLUSHALL ASYNC
делает, так это создает новый пустой набор таблиц ha sh для каждого словаря базы данных (в каждом словаре есть две таблицы ha sh) и планирует старые для отложенного освобождения.
Это поточно-ориентированный, но он увеличит загрузку вашего ЦП, пока базы данных очищаются в фоновом режиме, и вы также можете ожидать некоторого снижения производительности.
На пустом сервере redis я загрузил пара баз данных с ключами 20M каждая:
>select 4
OK
[4]> debug populate 20000000 key 20
OK
(16.49s)
[4]> select 3
OK
[3]> debug populate 20000000 key 20
OK
(16.75s)
[3]> info memory
# Memory
used_memory:3739770656
used_memory_human:3.48G
Тест производительности:
~$ redis-benchmark -c 5 -t set,lpush -q
SET: 30413.62 requests per second
LPUSH: 30553.01 requests per second
Тот же тест сразу после запуска FLUSHALL ASYNC
(сервер удаляет ключи 40M в фоновом режиме):
~$ redis-benchmark -c 5 -t set,lpush -q
SET: 26288.12 requests per second
LPUSH: 25367.83 requests per second
Я вижу ухудшение на 15%