Настройка redis на последовательное удаление старых данных первым

Я храню кучу данных реального времени в redis. Я устанавливаю TTL в 14400 секунд (4 часа) для всех ключей. Я установил maxmemory на 10G, что в настоящее время не достаточно места для размещения 4 часов данных в памяти, и я не использую виртуальную память, поэтому redis вытесняет данные до истечения срока их хранения.

Я не против того, чтобы 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
17
задан Didier Spezia 19 August 2015 в 09:04
поделиться