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

보기: 3522|회답: 2

[출처] .NET으로 개발된 Garnet 캐시와 Redis의 간단한 비교

[링크 복사]
2024-3-28 18:00:42에 게시됨 | | | |
가넷은 마이크로소프트 리서치에서 개발한 새로운 유형의 원격 캐시 저장소로, 여러 가지 독특한 이점을 제공합니다:

  • 가넷은 인기 있는 RESP 라인 프로토콜을 출발점으로 삼아, 오늘날 대부분의 프로그래밍 언어에서 사용 가능한 수정되지 않은 Redis 클라이언트(예: C#의 StackExchange.Redis)에서 가넷을 사용할 수 있게 합니다.
  • 가넷은 동급 오픈 소스 캐시 스토리지에 비해 많은 클라이언트 연결과 소규모 배치로 더 나은 처리량과 확장성을 제공하여 대규모 애플리케이션과 서비스의 비용을 절감합니다.
  • 가넷은 가속 TCP가 활성화된 Commodity Cloud(Azure) VM을 사용해 매우 낮은 클라이언트 지연(일반적으로 300마이크로초 미만, 99.9%)을 보여주었는데, 이는 실제 상황에서 매우 중요합니다.
  • Garnet은 최신 .NET 기술을 기반으로 하며, 크로스 플랫폼, 확장 가능, 현대적입니다. 일반적인 상황에서 성능을 희생하지 않으면서 쉽게 개발하고 진화할 수 있도록 설계되었습니다. 우리는 .NET의 풍부한 라이브러리 생태계를 활용해 API를 확장하고 오픈 최적화 기회를 제공합니다. .NET을 신중하게 활용한 덕분에 Garnet은 리눅스와 윈도우 모두에서 최첨단 성능을 달성합니다.


오픈 소스 주소:하이퍼링크 로그인이 보입니다.
문서조사:하이퍼링크 로그인이 보입니다.

가넷은 다음과 같은 주요 이점을 가지고 있습니다:

  • 서버 처리량(초당 연산수)은 소규모 배치와 많은 클라이언트 세션에서 유사한 오픈 소스 캐시 저장소에 비해 수십 배 증가합니다.
  • Windows와 Linux에서 가속 TCP가 활성화된 상품 클라우드(Azure) 기기에서는 작업당 지연 시간이 매우 낮습니다(일반적으로 99.9%에서 300마이크로초 미만).
  • 클라이언트 수가 증가할수록 클라이언트 배치 유무에 따라 더 나은 확장성을 달성합니다.
  • 서버 컴퓨터의 모든 CPU/메모리 자원을 단일 공유 메모리 서버 인스턴스를 통해 사용할 수 있는 능력(노드 내 클러스터링 불필요).
  • 온프레미스 및 클라우드 스토리지 장치로 오버플로우되는 메모리 이상의 대규모 데이터셋 지원.
  • 빠른 체크포인트, 복구, 게시/구독과 같은 데이터베이스 기능.
  • 다중 노드 샤드 해시 파티셔닝(Redis "클러스터" 모드), 상태 마이그레이션 및 복제 지원.
  • Garnet과 그 저장 계층인 Tsavorite에 대한 수천 건의 유닛 테스트 포함 종합 테스트 스위트로 잘 테스트되었습니다.
  • 진화와 확장이 쉬운 C# 코드베이스입니다.


Garnet은 모든 Redis 명령어를 지원하지 않으며, 특히 다음을 볼 수 있는 명령을 지원합니다:하이퍼링크 로그인이 보입니다.
Garnet 프로젝트에는 다양한 클라이언트, 다양한 워크로드, 정책을 사용하여 처리량, 성능, 지연 시간을 측정하는 RESP 벤치마크 벤치마크 도구를 포함하고 있습니다. 주소:하이퍼링크 로그인이 보입니다.
RESP 프로토콜:하이퍼링크 로그인이 보입니다.

이 글은 간단한 테스트를 위해 Redis의 내장 벤치마킹 도구를 사용하며, 테스트 환경은 다음과 같습니다:

레디스 벤치마크 성능 테스트
https://www.itsvse.com/thread-9645-1-1.html

캐시버전
레디스Redis 3.0.504 (0000000/0) 64비트
석류 석가넷 1.0.2 64비트; 독립형 모드


Redis 벤치마크

먼저, 명령줄을 사용하여 다음 명령어로 Redis 캐시를 실행하세요:


테스트 명령어는 다음과 같습니다:


결과는 다음과 같습니다:



====== ======
  50만 건의 요청이 24.38초 만에 완료됨
  100개의 병렬 클라이언트
  3바이트 페이로드
  생존 유지: 1

0.03% <= 1밀리초
0.25% <= 2밀리초
2.65% <= 3밀리초
16.49% <= 4밀리초
59.95% <= 5밀리초
99.09% <= 6밀리초
99.76% <= 7밀리초
99.86% <= 8밀리초
99.93% <= 9밀리초
99.98% <= 10밀리초
99.99% <= 11밀리초
100.00% <= 12밀리초
초당 20512.82 요청

====== ======
  50만 건의 요청이 27.41초 만에 완료됨
  100개의 병렬 클라이언트
  3바이트 페이로드
  생존 유지: 1

0.03% <= 1밀리초
0.19% <= 2밀리초
6.44% <= 3밀리초
25.82% <= 4밀리초
45.65% <= 5밀리초
98.79% <= 6밀리초
99.98% <= 7밀리초
99.98% <= 8밀리초
99.98% <= 9밀리초
100.00% <= 9밀리초
초당 18238.86 요청

가넷 벤치마크

새로운 .NET 8 콘솔 프로젝트를 만들고 다음 명령어로 먼저 Microsoft.Garnet 패키지를 참조하세요:


코드는 다음과 같습니다:


시작 명령은 다음과 같습니다:


같은 벤치마크 명령을 사용하면 결과는 다음과 같습니다:



====== ======
  50만 건의 요청이 11.51초 만에 완료됨
  100개의 병렬 클라이언트
  3바이트 페이로드
  생존 유지: 1

75.51% <= 1밀리초
88.24% <= 2밀리초
92.04% <= 3밀리초
99.46% <= 4밀리초
99.98% <= 5밀리초
99.99% <= 6밀리초
100.00% <= 12밀리초
100.00% <= 12밀리초
초당 43448.04 요청

====== ======
  50만 건의 요청이 31.50초 만에 완료됨
  100개의 병렬 클라이언트
  3바이트 페이로드
  생존 유지: 1

0.01% <= 1밀리초
0.90% <= 2밀리초
27.25% <= 3밀리초
97.65% <= 4밀리초
99.82% <= 5밀리초
99.94% <= 6밀리초
99.98% <= 7밀리초
99.98% <= 9밀리초
99.98% <= 10밀리초
99.99% <= 11밀리초
100.00% <= 12밀리초
100.00% <= 12밀리초
초당 15872.01 요청

테스트 도구, 소프트웨어 버전, 테스트 매개변수 등에 따라 결과가 다르며, 이 테스트들은 참고용일 뿐입니다. 이 글의 간단한 테스트를 통해 Garnet이 Redis보다 지연 시간이 현저히 낮다는 것을 알 수 있습니다.

(끝)




이전의:.NET/C# 반사 속성으로, null 타입으로 판단할 수 있습니다
다음:SSE (1)는 ASP.NET 코어를 SSE 서버로 사용합니다
 집주인| 2024-3-28 18:01:32에 게시됨 |
KeyDB는 Snap으로 구동되는 완전 오픈 소스 데이터베이스로, Redis보다 더 빠른 대안입니다. 주소:https://docs.keydb.dev/
 집주인| 2025-9-3 09:36:07에 게시됨 |
더 빠르게: C#과 C++에서 빠르고 동시 지속 키 값 저장 및 로깅을 지원합니다.
        
문서조사:하이퍼링크 로그인이 보입니다.
근원:하이퍼링크 로그인이 보입니다.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com