#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» У них должны истекать ключи с ближайшей датой истечения срока действия…