Redis игнорирует настройку maxmemory

#memory #redis

#память #redis

Вопрос:

Redis имеет следующие настройки:

«config get maxmemory«

 1) "maxmemory"
2) "2147483648"
  

(который равен 2G)

Но когда я делаю «info«

 used_memory:6264349904
used_memory_human:5.83G
used_memory_rss:6864515072
  

Очевидно, что он игнорирует все настройки… Почему?

Постскриптум

«config get maxmemory-policy» показывает:

 1) "maxmemory-policy" 
2) "volatile-ttl" 
  

и: «config get maxmemory-samples» показывает:

 1) "maxmemory-samples" 
2) "3" 
  

Что означает, что у них должны истекать ключи с ближайшей датой истечения срока действия…

Ответ №1:

У вас есть настройки истечения срока действия для всех ваших ключей? volatile-ttl удаляет только ключи с установленным сроком действия. Это должно быть в вашем выводе информации.

Если у вас нет установленных ttl истечения срока действия, попробуйте allkeys-lru или allkeys-random для вашей политики.

Ответ №2:

Согласно http://redis.io/topics/faq

Вы также можете использовать опцию «maxmemory» в файле конфигурации, чтобы ограничить объем памяти, который может использовать Redis. Если этот предел достигнут, Redis начнет отвечать ошибкой на команды записи (но продолжит принимать команды только для чтения).

Комментарии:

1. В соответствии с: config get maxmemory-policy 1) «maxmemory-policy» 2) «volatile-ttl» и: config get maxmemory-samples 1) «maxmemory-samples» 2) «3» У них должны истекать ключи с ближайшей датой истечения срока действия…