Supondo que você queira gerar IDs sequenciais, você pode usar o Redis e o comando INCR sem se preocupar com as condições de corrida. Como o Redis é (principalmente) single threaded, você tem certeza de que cada solicitação obterá seu próprio id exclusivo.
Além disso, você não precisa verificar a existência/inicialização da chave id porque o Redis fará isso por você (ou seja, se você INCR uma chave inexistente, ela será criada primeiro e definida como 0 automaticamente).