Ssylka

Реализация RateLimiter с Sliding Window на Yii и Redis

Sliding window rate limiter, в отличие от fixed window, ограничивает запросы в рамках скользящего временного окна, обеспечивая более точный контроль. Это позволяет избежать ситуаций, когда запросы, находящиеся на границе фиксированных окон, могут суммарно превышать лимиты.
Реализация RateLimiter с Sliding Window на Yii и Redis
Изображение носит иллюстративный характер

Предложенный подход использует Redis с сортированными множествами, где временные метки микросекунд служат как значения, так и ключи. При каждом запросе происходит удаление устаревших меток и добавление текущей, с последующей проверкой на превышение лимита.

Хранение запросов в Redis происходит в виде сортированных множеств с временными метками, хотя для оптимизации, особенно при высокой частоте запросов, целесообразно использовать обычные списки Redis с добавлением в начало и удалением из конца, поскольку данные всегда добавляются с увеличивающимися временными метками. При этом нужно помнить, что zadd гарантирует уникальность в рамках member'а. Использование микросекунд снижает вероятность перезаписи.


Новое на сайте

18687Кем на самом деле были мифические «покорители неба» и как генетика раскрыла тысячелетнюю... 18686Астрономы обнаружили крупнейшую вращающуюся структуру во вселенной протяженностью 5,5... 18685Критическая уязвимость React Server Components с максимальным рейтингом опасности... 18684Критическая уязвимость в плагине King Addons для Elementor позволяет хакерам получать... 18683Столетний температурный рекорд долины смерти оказался результатом человеческой ошибки 18682Почему пользователи чаще эксплуатируют алгоритмы с «женскими» признаками, чем с... 18681Как превратить подрывную технологию ИИ в контролируемый стратегический ресурс? 18680Телескоп Джеймс Уэбб раскрыл детали стремительного разрушения атмосферы уникальной... 18679Почему диета из сырых лягушек привела к тяжелому поражению легких? 18678Способны ли три критические уязвимости в Picklescan открыть дорогу атакам на цепочки... 18677Как поддельные инструменты EVM на crates.io открывали доступ к системам тысяч... 18676Закон максимальной случайности и универсальная математика разрушения материалов 18675Символ падения власти: тайна древнего захоронения женщины с перевернутой диадемой 18674Индия вводит жесткую привязку мессенджеров к активным SIM-картам для борьбы с... 18673Почему вернувшаяся кампания GlassWorm угрожает разработчикам через 24 вредоносных...