2017-12-28 34 views
1

여러 프로세스가 내 redis 저장소에 대한 액세스 권한이 있습니다. 새로운 사용자 해시를 추가 할 때, 나는 다음과 같은 단계를 수행합니다노드 redis - id 생성 경쟁 조건

  1. 증분 사용자 ID
  2. 설정 사용자 : 난에 다음 단계를 묶을 수있는 방법 [증가 된 userId를] ...

거래?

const client = require('redis').createClient(); 

client.on("connect",() => { 
    const multi = client.multi(); 
    multi.incr("userId", (userId) => { 
     console.log("new userId is %s", userId); // TODO userId should not be null 
     multi.set("user:"+userId, {name:"UserName"}); 
    }); 
    multi.exec(); // TODO after the execution I expect to see the key user:null using redis-cli, but it does not exist 
}); 

답변

0

당신은 동일한 트랜잭션 내부 거래에 대한 작업에서 응답을 사용할 수 없지만 귀하의 경우 그럴 필요도 없다 - INCR 작업은 경주 - 무료을 반환 원자 및 보장 유일한 가치.