2012-02-29 2 views
2

다음과 같은 문제가 있습니다. 과 NodeJS을 함께 사용하고 mranney's driver을 통해 NodeJS 웹 서버가 Redis에서 일부 데이터를 검색하고 일부 작업을 수행하고 저장하는 중입니다. 그것은 Redis에게 돌아 간다. 그러나이 작업 (X라고 함)은 여러 사용자가 같은 리소스에서 동시에 실행할 수 있도록하는 데 시간이 걸릴 수 있습니다.Redis store (또는 any database?) 잠금 메커니즘 (NodeJS)

그래서 사용자 A가 X를 실행하고 사용자 B가 X를 동시에 실행하면 사용자 A가 작업을 끝내고 사용자 B가 (처리 된) 데이터를 가져오고 X를 수행하기를 원합니다. 그 동안 사용자 B는 기다립니다. 사용자의 순서는 부적절합니다. 한 번에 하나씩 만 해당됩니다. 내 시나리오에서이를 달성하는 방법은 무엇입니까? Redis를 잠 그거나 잠금 해제하는 방법? 심지어 가능할까요?

답변

6

SETNX처럼 작동하는 시나리오에 대해 알지 못하는 채로 Redis에서 잠금을 구현하는 몇 가지 방법이 있습니다. Redis 설명서에서 Design pattern: Locking with SETNX을 참조하십시오. 또한, transactions in Redis은 재미있는 독서 일지 모르지만,이 사례에서 내가 정확히 무엇인지는 의심 스럽지만.

+1

위대한 링크! 나는 이것이 내가 필요로하는 바로 것 같아요! 트랜잭션에 대해 이미 알고 있지만 잠금에 대해서는 아무 것도 찾을 수 없습니다. 고맙습니다. :) – freakish