Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

Redis OM .NET 소개

.NET 및 Redis를 위한 유창한 API 및 개체 모델

Redis는 속도와 단순성이라는 두 가지 이유로 수백만 개발자에게 사랑받는 멋진 기술입니다. Redis는 프로그래머가 이미 알고 있는 데이터 구조로 논리적으로 구성된 직관적인 기본 인터페이스를 제공합니다. 또한 이러한 구조는 사용하기 쉽고 매우 최적화되어 있습니다. .NET용 새 클라이언트 라이브러리인 Redis OM의 출시와 함께 우리가 주목하고 있는 것은 속도와 단순성의 궁극적인 조합입니다.

Redis OM .NET이란 무엇입니까?

Redis OM은 Redis를 위한 개체 매핑 등입니다. Redis OM 뒤에 있는 동기는 "개발자가 모든 Redis 명령을 배우지 않고 어떻게 Redis에서 놀라운 레버리지를 얻을 수 있습니까?"라는 질문에 답하는 것입니다. 이 첫 번째 미리 보기 릴리스에서는 "Redis에서 도메인 개체를 어떻게 저장하고 찾을 수 있습니까?"라는 질문을 해결하려고 합니다. Redis OM .NET의 미리 보기 릴리스는 개체 매퍼, 보조 인덱스 빌더 및 간단하고 강력한 쿼리 빌더입니다. 이 모든 것은 Redis로 도메인 개체를 저장하고 찾는 데 도움을 주기 위한 것입니다.

Redis 모듈

Module API는 Redis의 게임 체인저였습니다. 모듈은 Redis에 대한 몇 가지 필수 기능을 제공하면서 플랫폼에 엄청난 양의 유연성을 추가합니다. 특히 RedisJSON은 특히 보조 인덱싱 및 문서 모델링과 관련된 엄청난 양의 기능을 잠금 해제합니다. Redis OM은 핵심 Redis와 잘 작동하지만 RedisJSON을 추가하면 Redis OM이 크게 향상되어 RedisJSON을 최대한 활용하여 개체를 모델링하고 Redis에서 쿼리하기 위한 풍부하고 강력한 API를 만듭니다.

기능

Redis OM .NET의 미리 보기 버전에는 다음과 같은 네 가지 기본 기능이 있습니다.

  1. 객체 모델링
  2. 색인 생성
  3. 유창한 쿼리
  4. 유창한 집계

작동 방식

Redis OM을 시작하고 실행하기 전에 프로젝트에 패키지를 설치해야 합니다. 이렇게 하려면

dotnet add package Redis.OM
을 실행하면 됩니다. . Redis OM 라이브러리 내의 기본 연결 논리는
RedisConnectionProvider
에 있습니다. . 이 공급자는 Redis와 통신하는 데 사용할 수 있는 세 가지 다른 개체에 대한 액세스를 제공합니다.

  1. IRedisConnection
    Execute
    를 사용하여 Redis와 직접 인터페이스할 수 있습니다. 및
    ExecuteAsync
    방법.
  2. RedisCollection<T>
    일반적으로 형식이 지정된 개체 컬렉션입니다. 이 인터페이스는 유창한 쿼리 API를 제공합니다.
  3. RedisAggregationSet<T>
    Fluent API를 사용하여 Redis에서 집계 파이프라인을 구축하고 실행할 수 있습니다.

Redis에 연결

Redis OM을 ASP.NET Core의 Redis에 연결하려면

RedisConnectionProvider
인스턴스를 삽입해야 합니다. 인스턴스를 싱글톤으로. 이렇게 하려면 Redis URI를 사용합니다. .NET 6을 사용하는 경우
program.cs 
를 여는 것을 의미합니다. 파일 및 추가:

Startup.cs 파일을 사용하는 .NET 5의 경우

Startup.ConfigureServices
에 다음을 추가할 수 있습니다. :

객체 모델링 및 검색

RedisJSON을 사용하면 기본적으로 Redis에 JSON 개체를 저장하고 해당 개체를 쿼리할 수 있습니다. 그러나 JSON을 쿼리하려면 먼저 인덱스를 정의해야 합니다. 이 프로세스를 더 쉽게 만들기 위해 Redis OM .NET에 선언적 모델을 도입하여 선언적 인터페이스를 통해 이러한 인덱스를 정의할 수 있습니다. Redis에 저장할 클래스를 선언하고 해당 속성을 인덱싱하려면

Document
로 클래스를 장식합니다. 속성을 지정한 다음 개별 속성에
Indexed
또는
Searchable
속성.
Indexed
표준 색인을 의미하는 반면
Searchable
문자열에만 적용되며 전체 텍스트 검색으로 속성을 쿼리할 수 있음을 의미합니다. 다음으로 새로 데코레이트된 유형을
IRedisConnection.CreateIndex
에 전달하여 Redis에서 인덱스를 생성할 수 있습니다. 방법. 예를 들어 인덱스가 있는 Customer 클래스를 선언하려면 다음과 같이 하면 됩니다.

쿼리

인덱스가 생성되면 이제

RedisCollection<T>
을(를) 사용할 수 있습니다. Redis에서 개체를 쿼리합니다. 따라서 John이 Redis에 Customer 객체로 저장되어 있다면 그에게 쿼리할 수 있습니다.

범위 쿼리를 쉽게 수행할 수도 있습니다. 예를 들어 퇴직 연령에 도달하지 않은 모든 고객을 찾습니다.

RedisCollection
RedisJSON을 사용하면 LINQ에서 일반적으로 하듯이 풍부하고 복잡한 쿼리를 작성할 수 있으며 Redis OM은 Redis의 쿼리 언어로의 번역을 관리합니다.

집계

쿼리 외에도 Redis 집계를 사용하여 모든 종류의 작업을 수행할 수 있는 집계 파이프라인을 구축할 수 있습니다. 예를 들어, 각 고객의 나이를 3년으로 구하고 싶다면

Apply
내에서 간단한 산술 연산으로 찾을 수 있습니다. Redis에서 적절한 형식의 집계 파이프라인으로 변환되는 표현식:

또한 레코드를 그룹화하고 이에 대한 요약 통계를 계산할 수도 있습니다. 따라서 성을 기준으로 고객을 그룹화하려는 경우 요약 통계를 계산할 수 있습니다. 예를 들어 평균 연령을 계산하는 방법은 다음과 같습니다.

마무리

이것은 .NET용 Redis OM 기능에 대한 간략한 개요입니다. 더 자세히 알고 싶다면 튜토리얼을 확인하고 API 문서를 살펴볼 수 있습니다. 우리는 곧 Redis.OM에 더 많은 기능을 추가할 계획이며, 이를 위해 커뮤니티 피드백을 환영합니다. 와서 사용해 보세요. 문제를 찾거나 라이브러리에 추가되었으면 하는 것이 생각나면 GitHub에서 문제를 엽니다. 그리고 자연스럽게 저희는 커뮤니티의 기여를 항상 좋아하기 때문에 PR은 언제나 환영입니다.