Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

RedisOM.NETの紹介

.NETおよびRedis用の流暢なAPIおよびオブジェクトモデル

Redisは、スピードとシンプルさという2つの理由から、何百万もの開発者に愛されている素晴らしいテクノロジーです。 Redisは、プログラマーがすでに知っているデータ構造に論理的に編成された直感的なネイティブインターフェイスを提供します。さらに、これらの構造は使いやすく、非常に最適化されています。 .NET用の新しいクライアントライブラリであるRedisOMのリリースで私たちが取り組んでいるのは、スピードとシンプルさのこの究極のブレンドです。

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のプレビューバージョンには、次の4つの主要な機能があります。

  1. オブジェクトモデリング
  2. インデックスの作成
  3. 流暢なクエリ
  4. 流暢な集計

仕組み

Redis OMを起動して実行する前に、プロジェクトにパッケージをインストールする必要があります。これを行うには、

dotnet add package Redis.OM
を実行するだけです。 。 Redis OMライブラリ内のプライマリ接続ロジックは、
RedisConnectionProvider
に存在します 。このプロバイダーは、Redisとの通信に使用できる3つの異なるオブジェクトへのアクセスを提供します。

  1. IRedisConnection
    Execute
    を使用してRedisと直接インターフェースできます および
    ExecuteAsync
    メソッド。
  2. RedisCollection<T>
    一般的に型指定されたオブジェクトのコレクションです。このインターフェースは、流暢なクエリAPIを提供します。
  3. RedisAggregationSet<T>
    FluentAPIを使用してRedisで集約パイプラインを構築および実行できます。

Redisへの接続

ASP.NETCoreでRedisOMをRedisに接続するには、

RedisConnectionProvider
のインスタンスを挿入する必要があります シングルトンとしてのインスタンス。これを行うには、RedisURIを使用します。 .NET 6を使用している場合、これは
program.cs 
を開くことを意味します ファイルと追加:

Startup.csファイルを使用する.NET5の場合、

Startup.ConfigureServices
に以下を追加できます。 :

オブジェクトのモデリングと検索

RedisJSONを使用すると、JSONオブジェクトをRedisにネイティブに保存し、それらのオブジェクトをクエリできます。ただし、JSONをクエリするには、最初にインデックスを定義する必要があります。このプロセスを簡単にするために、Redis OM .NETに宣言型モデルを導入し、宣言型インターフェイスを介してこれらのインデックスを定義できるようにしました。 Redisに格納するクラスを宣言し、そのプロパティにインデックスを付ける場合は、クラスを

Document
で装飾します。 属性を作成し、個々のプロパティを
Indexed
でドレスアップします または
Searchable
属性。
Indexed
Searchable
に対して、標準インデックスを意味します 文字列にのみ適用され、プロパティが全文検索でクエリ可能になることを意味します。次に、新しく装飾されたタイプを
IRedisConnection.CreateIndex
に渡すことで、Redisでインデックスを作成できます。 方法。したがって、たとえば、インデックスを使用してCustomerクラスを宣言する場合は、次のようにします。

クエリ

インデックスを作成すると、

RedisCollection<T>
を使用できるようになります Redisでオブジェクトをクエリします。したがって、JohnをCustomerオブジェクトとしてRedisに保存していた場合は、次のようにクエリを実行できます。

範囲クエリも簡単に実行できます。たとえば、定年に達していないすべての顧客を見つけましょう。

RedisCollection
を使用 また、RedisJSONを使用すると、LINQで通常行うように、リッチで複雑なクエリを作成できます。RedisOMは、Redisのクエリ言語への翻訳を管理します。

アグリゲーション

クエリに加えて、Redis Aggregationsを使用して、あらゆる種類のことを実行できる集計パイプラインを構築できます。たとえば、各顧客の3歳の年齢を知りたい場合、

Apply
内で簡単な算術演算を使用して調べることができます。 式。Redisで適切にフォーマットされた集約パイプラインに変換されます:

レコードをグループ化して、それらの要約統計量を計算することもできます。したがって、顧客を名前でグループ化する場合は、要約統計量を計算できます。たとえば、平均年齢を計算する方法は次のとおりです。

まとめ

これは、Redis OMfor.NETの機能の概要です。詳細については、チュートリアルを確認してAPIドキュメントを確認してください。間もなくRedis.OMに機能を追加する予定です。そのために、コミュニティからのフィードバックをお待ちしています。是非、お試しください。問題を見つけたり、ライブラリに追加してほしいものを考えたりした場合は、GitHubで問題を開いてください。そして当然、私たちは常にコミュニティからの貢献が大好きなので、PRはいつでも歓迎です:)


  1. Redisのパフォーマンスについての考え

    単純なキャッシングから数テラバイトサイズのセットアップまで、さまざまなユースケースでRedisを使用している多くの人々や企業と話す特権が与えられているので、私が他の何よりも取り上げるよう求められているトピックの1つはパフォーマンスです。 Redisは、パフォーマンスへのアプローチ方法が異なります。ほとんどではないにしても、多くのデータベースサーバーでパフォーマンスを向上させようとしています。 Redisの目標は、速度を落とさないことです。これは非常に異なるアプローチであり、それを利用するには異なる考え方が必要です。 パフォーマンスメトリクス–レイテンシーは王様ですか? Redisを使用すると

  2. FastlyComputeでRedisを使用する

    この例では、古いバージョンのFastlyCLIを使用しています。最新バージョンについては、この記事を確認してください。 この投稿では、Fastly Compute@Edgeで実行される簡単なアプリケーションを作成します。アプリケーションはUpstashRedisにアクセスして、ページビューを追跡します。 モチベーション エッジコンピューティングは、近年最もエキサイティングなトレンドの1つです。 CloudflareやFastlyなどのCDNサービスは、ユーザーがエッジインフラストラクチャでアプリケーションを実行できるようにするために開始されました。これは、開発者がグローバルに分散された高