Продвинутый
Как работает алгоритм Sliding Window Log (Скользящее окно с логом) для Rate Limiting?
В отличие от Fixed Window (где счетчик сбрасывается ровно в 12:00), Sliding Window Log решает проблему граничных всплесков трафика.
Как работает:
1. Сервер (обычно в Redis) хранит отсортированное множество (Sorted Set) с Timestamp каждого запроса пользователя.
2. При новом запросе сервер удаляет все Timestamp, которые старше 1 минуты от текущего момента.
3. Считает оставшиеся записи. Если их меньше лимита (например, 100) — запрос пропускается и его Timestamp добавляется в лог. Если больше — 429 Too Many Requests.
✅ Плюс: Идеально точный лимит. ❌ Минус: Жрет много памяти (нужно хранить время каждого запроса).