.NET

컬렉션용 .NET 캐싱 공급자 확장하기

.NET 개발자가 애플리케이션에서 Couchbase를 더 잘 사용할 수 있도록 커뮤니티에서 지원하는 컬렉션이 있습니다. 카우치베이스 확장. 여기에는 캐싱, 세션, 멀티오, 압축 및 잠금을 위한 확장 기능이 포함됩니다. 그리고 공식적으로 지원되는 몇 가지 확장 기능도 있습니다. 종속성 주입, 오픈 원격 분석 및 트랜잭션.

오늘 논의할 주요 내용은 다음과 같습니다. Couchbase.Extensions.Caching를 구현하는 NET 분산 캐시 인터페이스 를 사용합니다. 다음을 사용하여 프로젝트에 추가할 수 있습니다. NuGet (닷넷 Couchbase.Extensions.Caching 패키지 추가).

최근 크루즈 업계에서 여러 애플리케이션을 관리하는 고객과 함께 일하고 있는데, 각 애플리케이션마다 캐싱 데이터를 별도로 저장하고 싶어합니다. 하지만 각 애플리케이션에 대해 완전히 새로운 버킷을 만드는 것은 지나친 작업입니다. 이 고객이 궁금해하는 것은 범위/컬렉션을 지정하는 방법이었습니다. Couchbase.Extensions.Caching 라이브러리.

세션 및 캐싱 확장 기능

최근 몇 년 동안 Couchbase SDK 2에서 SDK 3으로 전환하면서 다음과 같은 많은 새로운 기능과 개선 사항이 도입되었습니다. 범위/컬렉션 지원. . Couchbase.Extensions 제품군도 SDK 3을 지원하도록 업데이트되었습니다.

그러나 기본값 이 라이브러리의 사용법은 _기본값 범위 및 _기본값 컬렉션에는 다른 것을 지정할 수 있는 기본 옵션이 없습니다.

실제로 작동하는 것을 보려면 다음은 Couchbase를 분산 캐시로 추가하는 구성 라인입니다( GitHub 예제 프로젝트):

해당 코드에서, 내 프로젝트 은 버킷 이름입니다. 버킷 이름은 opt 객체에는 범위/컬렉션 이름에 대한 옵션이 없습니다.

샘플 프로젝트를 사용하면 다음과 같은 캐시된 정보를 얻을 수 있습니다:

(버킷, 범위 및 컬렉션 이름은 다음과 같습니다. 내 프로젝트, _기본값_기본값).

확장 프로그램 확장

다행히도 라이브러리는 약간의 코드만 추가하면 원하는 컬렉션을 가리킬 수 있을 정도로 확장성이 뛰어납니다.

프로젝트에 대해 좀 더 자세히 살펴보겠습니다. ICouchbaseCacheCollectionProvider.cs 그리고 DefaultCouchbaseCacheCollectionProvider.cs

    • ICouchbaseCacheCollectionProvider 에는 하나의 메서드가 포함되어 있습니다, GetCollectionAsync.
    • 디폴트 카우치베이스 캐시 컬렉션 공급자의 를 사용하여 해당 메서드를 구현합니다: bucket.DefaultCollection()을 반환합니다;

하지만 기본 컬렉션을 사용하고 싶지 않다면 어떻게 해야 할까요?

이 경우 다음과 같은 사용자 정의 구현을 만듭니다. ICouchbaseCacheCollectionProvider. 내 전화로 전화할게요 사용자 지정 카우치베이스 캐시 컬렉션 공급자:

이것이 시작점이라고 생각하세요. 구현에서는 원하는 대로 설정하고 추가 로직을 추가하는 등의 작업을 수행할 수 있습니다.

다음 단계는 이를 서비스로 추가하는 것입니다( Program.cs 일반적으로 범위/컬렉션 이름을 지정합니다:

기본 공급자가 덮어쓰는 것이 우려되는 경우 다음 사항에 유의하세요. 시도 추가 싱글톤내부에서 사용 추가 분산 카우치베이스 캐시. 이는 곧 하지 않습니다. 사용자 정의 공급자를 기본 공급자로 재정의합니다.

실제 사용자 지정 공급자

이 확장 프로그램은 실제로 지정된 범위와 컬렉션을 생성하지 않으므로 미리 생성했는지 확인하세요.

앱을 실행하고 OpenAPI 대화형 페이지에서 일기 예보 API를 사용해 보세요. 엔드포인트를 처음 실행하면 "캐시 미스"가 발생하며, 이 시점에서 일기 예보 데이터가 지정된 컬렉션에 기록됩니다:

(버킷, 범위 및 컬렉션 이름은 다음과 같습니다. 내 프로젝트, 마이캐싱 범위마이캐싱 컬렉션).

요약

인터페이스를 사용자 정의로 구현하고 Program.cs를 사용하여 캐시된 데이터를 저장할 범위/컬렉션을 지정할 수 있습니다.

또한 Couchbase.Extensions.Session 확장자는 캐싱 확장을 기본 스토리지 메커니즘으로 사용합니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 매튜 그로브스

Matthew D. Groves는 코딩을 좋아하는 사람입니다. C#, jQuery, PHP 등 무엇이든 풀 리퀘스트를 제출할 정도로 코딩을 좋아합니다. 90년대에 부모님의 피자 가게를 위해 QuickBASIC POS 앱을 만든 이후로 전문적으로 코딩을 해왔습니다. 현재 Couchbase의 선임 제품 마케팅 관리자로 일하고 있습니다. 여가 시간에는 가족과 함께 축구 경기를 관람하고 개발자 커뮤니티에 참여하며 시간을 보냅니다. 그는 .NET의 AOP, .NET의 프로 마이크로서비스, Pluralsight 저자, Microsoft MVP의 저자이기도 합니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.