이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 34174|회답: 5

[.NET 코어] .NET Core는 Redis 기반의 분산 잠금 원칙 파싱을 구현합니다

[링크 복사]
게시됨 2020. 9. 22. 오전 9:17:22 | | | |
비즈니스 시나리오에서는 상품 재고, 동일 파일 등과 같은 콘텐츠의 동시 운영이 허용되지 않으며, 프로그램 애플리케이션은 여러 서버에 배포됩니다.
[실제 전투] ASP.NET 코어는 레디스 배포 잠금 플래시 세일을 기반으로 합니다
https://www.itsvse.com/thread-9397-1-1.html

이전에 작성된 zk 기반 분산 락은 다음과 같습니다:

.net/c# Zookeeper 분산 잠금 구현 [소스 코드]
https://www.itsvse.com/thread-4651-1-1.html

이 글을 읽기 위해 알아야 할 사항들:

볼라타일 vs. 인터록드 vs. 락
https://www.itsvse.com/thread-5023-1-1.html

C# 병렬 계산 Parallel.For&Parallel.For
https://www.itsvse.com/thread-3671-1-1.html

.NET Core는 Redis 기반의 분산 잠금을 구현합니다원리는 REDIS의 SETNX 명령어를 호출하는 것입니다, 키가 이미 존재한다면 SETNX 명령어는 아무런 반응을 보이지 않습니다. 명령어는 설정이 성공하면 1, 실패하면 0으로 반환합니다.

하이퍼링크 로그인이 보입니다.

새로운 .NET Core 3.1 콘솔 프로젝트를 생성하고, StackExchange.Redis의 참조를 추가한 뒤, 다음과 같이 nuget 명령어를 사용하세요:

라이브러리의 StringSet 메서드를 StackExchange.Redis 소스 코드를 통해 호출하면, StringSet 메서드가 GetStringSetMessage의 개인 메서드를 호출해 열거 값을 통해 서로 다른 집합 명령을 실행하는 것을 알 수 있습니다. 코드는 다음과 같습니다:

SETNX 명령어를 2000번 병렬 테스트 호출을 통해 실행하며, 이 호출은 두 번에 걸쳐 실행됩니다. 이 세션에서는 키의 캐시 유효성이 5초입니다. 즉, 키는 5초 후에 자동으로 해제되며, 즉 잠금이 해제됩니다.

코드는 다음과 같습니다:


보시다시피, 총 2번의 성공적인 삽입과 1998년 실패한 시도는 우리가 예상한 것과 정확히 일치하며, 렌더링은 다음과 같습니다:


현재로서는 아직 잠금장치가 해제되지 않았습니다.
(끝)









이전의:경로 중 일부인 "\bin\roslyn\csc.exe" 우회 방법을 찾지 못했습니다.
다음:EF Core Series 2는 OnModelCreating을 캡슐화하고, 반사를 이용한 인덱스 생성 등 다양한 기능을 제공합니다
 집주인| 게시됨 2020. 9. 26. 오후 3:37:52 |
테스트123
게시됨 2020. 11. 20. 오전 11:18:31 |
컨테이너를 배포할 때 멀티스레드 환경과 다중 인스턴스 환경이 있다면, 이 처리 방식에 문제가 있을까요?
 집주인| 게시됨 2020. 11. 20. 오전 11:29:44 |
qiuyueming 님이 2020-11-20 11:18에 게시함
컨테이너를 배포할 때 멀티스레드 환경과 다중 인스턴스 환경이 있다면, 이 처리 방식에 문제가 있을까요? ...

멀티 인스턴스는 멀티스레딩을 의미하며, 소스 코드에서는 멀티 스레드가 redis를 호출하고 오직 하나의 스레드만 락을 받습니다
게시됨 2022. 3. 22. 오후 2:32:40 |
응원, 응원
게시됨 2022. 3. 23. 오전 11:15:30 |
이게 좋은 걸 배워 @
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com