Fixed Window Counter Algorithm

def fixed_window_limiter(user_id, limit=100, window=3600):
    key = f"rate_limit:{user_id}:{int(time.time() // window)}"
    current_count = redis.incr(key)
    if current_count == 1:
        redis.expire(key, window)
    return current_count <= limit