Я храню кучу данных в реальном времени в 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