Přijatá odpověď výše je zbytečně komplikovaná. Za těchto okolností nemusíte používat multi nebo hodinky. INCR je již atomový a je navržen přesně pro tento scénář. Edit:Děkujeme Itamar Haber &robe007 za změnu přijaté odpovědi. :)
Můžete to udělat jednoduše:
var name = 'Josh';
client.incr('id', function(err, id) {
client.hmset('user:' + id, 'username', name);
});
Provedením výše uvedeného INCR automaticky uzamkne klíč „id“, zvýší jej za vás, odemkne a vrátí vám jej. Neexistuje tedy žádný způsob, jak by někdo mohl získat duplicitní uživatelské ID pomocí výše uvedeného kódu. Má také výhodu v tom, že nikdy nemůže selhat, na rozdíl od WATCH/GET, kde byste museli zkontrolovat selhání a spustit dotazy znovu, pokud selhaly.