Het geaccepteerde antwoord hierboven is onnodig ingewikkeld. U hoeft in dit geval geen multi of horloge te gebruiken. INCR is al atomair en is ontworpen voor dit exacte scenario. Bewerken:Met dank aan Itamar Haber &robe007 voor het wijzigen van het geaccepteerde antwoord. :)
U kunt dit eenvoudig doen:
var name = 'Josh';
client.incr('id', function(err, id) {
client.hmset('user:' + id, 'username', name);
});
Door het bovenstaande te doen, vergrendelt INCR automatisch de "id"-sleutel, verhoogt deze voor u, ontgrendelt deze en geeft deze aan u terug. Er is dus voor niemand een manier om een duplicaat gebruikers-ID te krijgen met behulp van de bovenstaande code. Het heeft ook het voordeel dat u nooit echt kunt falen, in tegenstelling tot WATCH/GET, waar u op fouten moet controleren en uw query's opnieuw moet uitvoeren als ze niet werken.