rate limits with redis locks