분포 자물쇠
1678 단어 분포 식
redission 분포 자 물 쇠 는 map 와 같은 데이터 구 조 를 사 용 했 습 니 다. key 는 자물쇠 의 이름 이 고 map 의 key 클 라 이언 트, value 는 다시 들 어 오 는 개수 입 니 다.
코드 를 분석 하면 대체적으로 코드 는 RedissionLock 클래스 에 적 혀 있 습 니 다.
잠 금 추가:
// ,
if (redis.call('exists', KEYS[1]) == 0)
map , key id ,value 1 , 1
then redis.call('hset', KEYS[1], ARGV[2], 1);
, 30
redis.call('pexpire', KEYS[1], ARGV[1]); return nil; end;
// , id
if (redis.call('hexists', KEYS[1], ARGV[2]) == 1)
// 1
then redis.call('hincrby', KEYS[1], ARGV[2], 1);
redis.call('pexpire', KEYS[1], ARGV[1]);
0
return nil; end;
// , key
return redis.call('pttl', KEYS[1]);
key1 key
argv1 key
argv2 id, UUID + thread_id ,UUID redission
잠 금 해제:
0 ,1
//
if (redis.call('exists', KEYS[1]) == 0)
// , 1
then redis.call('publish', KEYS[2], ARGV[1]); return 1; end;
// id id ,
if (redis.call('hexists', KEYS[1], ARGV[3]) == 0) then return nil;end;
// id , -1
local counter = redis.call('hincrby', KEYS[1], ARGV[3], -1);
// 0,
if (counter > 0) then redis.call('pexpire', KEYS[1], ARGV[2]); return 0;
// 0,
else redis.call('del', KEYS[1]); redis.call('publish', KEYS[2], ARGV[1]); return 1; end;
// null
return nil;
상세 한 정 보 는 볼 수 있다. 분산 식 자물쇠
zookepper 분포 잠 금 실현:
상세 하 게 보다 zookeeper 분포 잠 금 실현
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception 과 Result얼핏 보면 이상 스 택 깊이 가 100 인 성능 손실 은 일반 방법 에서 사용 하 는 360 배 이 고 어떤 사람들 은 이런 이유 로 자바 의 이상 중단 성능 손실 이 심각 하 다 는 결론 을 내 렸 다. Dubbo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.