Die akzeptierte Antwort oben ist unnötig kompliziert. In diesem Fall müssen Sie kein Multi oder keine Uhr verwenden. INCR ist bereits atomar und wurde genau für dieses Szenario entwickelt. Bearbeiten:Vielen Dank an Itamar Haber &robe007, dass Sie die akzeptierte Antwort geändert haben. :)
Sie können dies einfach tun:
var name = 'Josh';
client.incr('id', function(err, id) {
client.hmset('user:' + id, 'username', name);
});
Auf diese Weise sperrt INCR automatisch den „id“-Schlüssel, erhöht ihn für Sie, entsperrt ihn und gibt ihn an Sie zurück. Daher gibt es für niemanden eine Möglichkeit, mit dem obigen Code eine doppelte Benutzer-ID zu erhalten. Es hat auch den Vorteil, dass es nie wirklich fehlschlagen kann, im Gegensatz zu WATCH/GET, wo Sie nach Fehlern suchen und Ihre Abfragen erneut ausführen müssten, wenn sie fehlschlagen.