[REDIS] 독특한 원자 번호 생성기로 레디 스는 - 피하기 경쟁 조건에 웹 앱 안전한 방법 스레드
REDIS독특한 원자 번호 생성기로 레디 스는 - 피하기 경쟁 조건에 웹 앱 안전한 방법 스레드
나는 독특한 원자 번호 생성기로 레디 스를 사용할 계획입니다. 하지만, 내 관심사는 여러 브라우저에서 simulatoneous 웹 요청이있을 수 있습니다. 나는 궁금했다, 다음과 같은 작업이 원자 만들 수있는 일반적인 방법은 무엇입니까?
get id from redis
if id is not found
insert id as 0 into redis
else
store the id in a variable
increase id by one
store the new id back to redis
내가 데스크톱 응용 프로그램 또는 모바일 앱에 있다면, 나는 피하기 경쟁 조건에 자바 키워드 동기화 사용할 수 있습니다.
그러나, 방법에 대한 PHP 웹 응용 프로그램을 검색 하시나요?
해결법
-
==============================
1.당신이 순차적으로 ID를 생성하기 위해 찾고 가정하면, 경쟁 조건에 대한 걱정없이 레디 스 및 INCR 명령을 사용할 수 있습니다. 레디 스이기 때문에 (대부분) 단일 스레드는, 당신은 모든 요청이에서 자신의 고유 ID를 얻을 것이다 보장됩니다.
당신이 순차적으로 ID를 생성하기 위해 찾고 가정하면, 경쟁 조건에 대한 걱정없이 레디 스 및 INCR 명령을 사용할 수 있습니다. 레디 스이기 때문에 (대부분) 단일 스레드는, 당신은 모든 요청이에서 자신의 고유 ID를 얻을 것이다 보장됩니다.
또한, 당신은 레디 스 할 것이기 때문에 그것을 / 아이디 키의 존재를 확인 초기화 당신이 (당신이 존재하지 않는 키를 INCR의 경우는 먼저 자동으로 0으로 생성 및 설정됩니다 즉)에 대한 필요하지 않습니다.
from https://stackoverflow.com/questions/24028171/redis-as-unique-atomic-id-generator-thread-safe-way-for-web-app-to-avoid-race by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 한 번에 레디 스 목록에서 모든 목록 항목을 팝업 할 수있는 방법이 있습니까? (0) | 2020.01.25 |
---|---|
[REDIS] 트래비스 CI에 레디 스를 실행 (0) | 2020.01.25 |
[REDIS] 레디 스 - 대량 삽입 및 카운터 (0) | 2020.01.25 |
[REDIS] 레디 스 개념 : 메모리 또는 DB에서? (0) | 2020.01.25 |
[REDIS] 나는 루비 다이제스트 :: SHA1 인스턴스 객체를 직렬화 할 수 있나요? (0) | 2020.01.25 |