To avoid race conditions with concurrent requests better to use Redis Lua. See this example: https://gist.github.com/ptarjan/e38f45f2dfe601419ca3af937fff...
This fork also implements Redis Client Pipelining to check multiple limits at the same time, and Concurrency Limits.