maxmemory и политики вытеснения Redis: что произойдёт, когда память кончится?
Поведение при исчерпании памяти определяется парой maxmemory и maxmemory-policy. По умолчанию политика — noeviction: сервер начинает отвечать ошибкой на команды записи, оставаясь доступным на чтение. Для кэша это плохой выбор, для хранилища состояния — единственно верный, потому что молчаливая потеря данных хуже явной ошибки. Основные варианты: allkeys-lru — вытесняем любой давно не используемый ключ, разумный дефолт для чистого кэша; allkeys-lfu — по частоте обращений, лучше при перекошенном профиле, когда есть небольшое ядро горячих ключей; volatile-lru/volatile-ttl — трогаем только ключи с установленным сроком жизни, что позволяет держать в одном экземпляре и кэш, и данные, которые терять нельзя. Важно: LRU и LFU в Redis приближённые — сервер выбирает жертву из случайной выборки (maxmemory-samples, по умолчанию 5), а не сканирует всё пространство ключей.