Как ограничить максимальное количество обращений в секунду?
Есть код на quart (асинхронная альтернатива flask), нужно чтобы с одного user_id (или если его нет, то ip) можно было ограничить максимальное количество запросов в секунду или минуту.
Сразу попёрли мысли на счет noSQL, например redis, но нормальной пищи для размышлений не нашел в интернете.
Может, есть варианты это делать в оперативной памяти, или лучше в noSQL? Если есть, дайте ссылки на подобные материалы в информационно-телекоммуникационной сети "Интернет".
У тебя же асинхронный код в одном процессе и даже в одном потоке, храни в памяти обычный мап - количество обращений в секунду и либо каждую новую секунду массив обнулять либо, более правильно, хранить рядом в fifo массиве последний список запросов (время+user_id), удаляя с каждым следующим запросом из головы записи старее секунды, соответственно вычитая из мапа user_id:количество значение, а при добавлении записи в голову соответственно количество увеличивать.