Distributed mutex/semaphore using redis