Настройка Redis для последовательного удаления старых данных в первую очередь
Я храню кучу данных в реальном времени в Redis. Я устанавливаю TTL 14400 секунд (4 часа) для всех клавиш. Я установил для maxmemory значение 10G, которого в настоящее время недостаточно для размещения 4 часов данных в памяти, и я не использую виртуальную память, поэтому redis удаляет данные до истечения срока их действия.
Я в порядке с повторным удалением данных, но мне бы хотелось, чтобы сначала были удалены самые старые данные. Поэтому, даже если у меня нет полных 4 часов данных, по крайней мере, у меня может быть некоторый диапазон данных (3 часа, 2 часа и т. Д.) Без пропусков. Я пытался сделать это, установивmaxmemory-policy=volatile-ttl
думая, что самые старые ключи будут выселены первыми, так как все они имеют одинаковый TTL, но это не работает таким образом. Похоже, что redis высвобождает данные несколько произвольно, поэтому в результате я получаю пробелы в своих данных. Например, сегодня данные за 2012-01-25T13: 00 были выселены до данных за 2012-01-25T12: 00.
Можно ли настроить redis для последовательного удаления старых данных в первую очередь?
Вот соответствующие строки из моего файла redis.cnf. Дайте мне знать, если вы хотите увидеть больше конфигурации:
maxmemory 10gb
maxmemory-policy volatile-ttl
vm-enabled no