Приетият отговор по-горе е ненужно сложен. При това обстоятелство не е необходимо да използвате мултимедийно устройство или часовник. INCR вече е атомен и е проектиран точно за този сценарий. Редактиране:Благодарение на Itamar Haber &robe007 за промяната на приетия отговор. :)
Можете просто да направите това:
var name = 'Josh';
client.incr('id', function(err, id) {
client.hmset('user:' + id, 'username', name);
});
Правейки горното, INCR автоматично заключва ключа "id", увеличава го вместо вас, отключва го и ви го връща. По този начин няма начин някой да получи дублиран потребителски идентификатор, използвайки кода по-горе. Освен това има предимството, че никога не е в състояние да се провали, за разлика от WATCH/GET, където ще трябва да проверявате за неуспехи и да изпълнявате заявките си отново, ако не успеят.