Sliding window counter: ключ rate:{user}:{window}, INCR + EXPIRE. В Lua скрипте атомарно: local count = redis.call("INCR", key); if count == 1 then redis.call("EXPIRE", key, window) end; return count. Сравниваешь с лимитом. Для token bucket: храни tokens и last_refill_time, пересчитывай при каждом запросе. go-redis/redis_rate реализует GCRA алгоритм — точнее sliding window.
Как реализовать global rate limiter через Redis?
Middle+
88 просмотровAFK Offer AI
Что такое golang.org/x/time/rate?