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

.NET Core での Redis 統合をマスターする:実践ガイド

はじめに

Redis は、最新のアプリケーションのキャッシュ、セッション ストレージ、メッセージ ブローカリング、パブリッシュ/サブスクライブ通信に広く使用されている高速なメモリ内キー/値ストアです。軽量でパフォーマンスが高く、開発者にとって使いやすいため、スケーラブルなシステムを構築するための有力な選択肢となります。

.NET Core で開発していて、Redis をアプリケーションに統合したい場合、この記事では StackExchange.Redis ライブラリを使用して基本的な Redis 操作を実行する方法を説明します。

Windows システムで作業している場合は、Redis 互換サーバーを使用すると、Linux やコンテナ化を必要とせずに Redis を実行できます。

Redis を使用する理由

Redis を .NET Core アプリケーションと統合すると、いくつかの利点が得られます。

<オル>
  • キャッシュ: 頻繁にアクセスされるデータを保存することで、応答時間を短縮し、データベースのワークロードを軽減します。
  • セッション管理: 分散システムでユーザー セッションを効率的に処理する
  • リアルタイム イベント: パブリッシュ/サブスクライブ機能に Redis を使用して、通知やイベント ドリブンの通信などのリアルタイム機能を強化します。
  • 高性能: メモリ内で動作し、低レイテンシのデータ アクセスを実現します。
  • スケーラブル: クラスタリングとシャーディングのサポートにより、Redis はスケーラビリティを考慮して構築されています。
  • Redis のセットアップ

    Redis の使用

    .NET Core アプリを Redis に接続するには、Redis を実行します。

    • コマンドラインによるインストール: Docker などのツールを使用して、Linux または Windows 上で Redis を実行します。
    • 事前設定された Windows の代替: Windows を使用している場合は、Redis をネイティブに実行するためのドロップイン代替として Redis 互換サーバーを使用できます。

    注意してください。 簡単にするために、このチュートリアルでは、Redis が localhost:6379 でローカルに実行されていることを前提としています。

    Redis を使用した .NET Core アプリケーションの構築

    この例では、次の Redis 操作を実行する .NET Core コンソール アプリケーションを作成します。

    <オル>
  • Redis サーバーに接続します。
  • 基本的な Key-Value 操作 (設定、取得、削除) を実行します。
  • キーの有効期限と検証をデモンストレーションします。
  • ステップ 1. .NET Core プロジェクトを作成します。

    <オル>
  • ターミナルを開いて新しいプロジェクトを作成します。

    dotnet new RedisIntegrationDemo
  • Redis 接続用の StackExchange.Redis パッケージをインストールします。

    dotnet add package StackExchange.Redis
  • ステップ 2. コードを書きます。

    Program.cs の完全な実装は次のとおりです。

    using System;
    using StackExchange.Redis;
    using System.Threading.Tasks;
    namespace RedisIntegrationDemo
    {
     class Program
     {
     // Connection string for Redis
     private const string RedisConnectionString = "localhost:6379";
     async static Task Main(string[] args)
     {
     Console.WriteLine("Connecting to Redis...");
     // Connect to Redis
     var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnectionString);
     Console.WriteLine("Connected to Redis successfully.\n");
     // Access the Redis database
     IDatabase db = redis.GetDatabase();
     // Perform Redis operations
     Console.WriteLine("Performing Redis operations...");
     // 1. Set key-value pair
     string key = "SampleKey";
     string value = "Hello from Redis!";
     await db.StringSetAsync(key, value);
     Console.WriteLine($"Set: {key} => {value}");
     // 2. Get the value for the key
     string savedValue = await db.StringGetAsync(key);
     Console.WriteLine($"Get: {key} => {savedValue}");
     // 3. Set an expiration for the key
     TimeSpan expiryTime = TimeSpan.FromSeconds(10);
     await db.KeyExpireAsync(key, expiryTime);
     Console.WriteLine($"Set expiration for {key}: {expiryTime.TotalSeconds} seconds");
     // 4. Check key existence after expiration
     Console.WriteLine("\nWaiting for the key to expire...");
     await Task.Delay(12000); // Wait 12 seconds
     bool exists = await db.KeyExistsAsync(key);
     Console.WriteLine($"Key Exists After Expiration: {key} => {exists}");
     // Close the connection
     redis.Close();
     Console.WriteLine("\nAll Redis operations completed.");
     }
     }
    }

    ステップ 3. アプリケーションを実行します。

    アプリケーションを実行します。

    dotnet run

    期待される出力

    プログラムは Redis に接続し、基本的なキーと値の操作を実行し、キーの有効期限を検証します。次のような出力が表示されるはずです。

    .NET Core での Redis 統合をマスターする:実践ガイド

    Redis は .NET Core でどのように動作しますか?

    アプリケーションの動作を段階的に説明します。

    <オル>
  • 接続プーリングとサーバー通信を管理する ConnectionMultiplexer を使用して Redis サーバーに接続します。
  • 基本的なコマンドを実行します。
    • StringSetAsync: Redis にキーと値のペアを設定します。
    • StringGetAsync: キーの値を取得します。
    • KeyExpireAsync: キーの有効期限を設定します。
    • KeyExistsAsync: キーが存在するかどうかを確認します。
  • 有効期限のあるデータの一時的なメモリ内ストレージを処理します。
  • Windows 環境で作業していて、ネイティブ Redis インスタンスをインストールしたり Docker を使用したくない場合は、代わりに Redis 互換サーバーを使用できます。

    Redis 互換サーバーのセットアップ

    • Windows 用の Redis 互換サーバーをインストールします。
    • サーバーは通常、インストールされると、Redis と同様にデフォルトで localhost:6379 で実行されます。
    • アプリケーションを Redis 互換サーバーで動作させるためにコードを変更する必要はありません。

    Redis 互換サーバーを使用すると、コンテナや仮想化環境に依存せずに、Redis 機能を Windows 上でネイティブに実行できます。

    .NET Core で Redis を使用する利点

    <オル>
  • パフォーマンス: Redis は完全にメモリ内で動作するため、レイテンシが極めて低くなります。
  • 使いやすさ: リスト、セット、ハッシュなどの追加のデータ構造を備えた、一般的な Key-Value ニーズに対応する簡素化された API。
  • 柔軟性: Redis は複数の目的 (キャッシュ、メッセージ キュー、パブリッシュ/サブスクライブなど) を提供します。
  • スケーラビリティ: Redis は、需要に応じて拡張できるクラスタリングと高可用性をサポートします。
  • 結論

    Redis を .NET Core アプリケーションに統合すると、要求の厳しいワークロードを処理できる高品質でパフォーマンスの高いシステムを構築できます。 StackExchange.Redis ライブラリを使用すると、Redis とシームレスに対話できます。

    まず単純なキャッシュやセッション管理のために Redis を実装し、その使用を分散 .NET Core アプリケーションでのパブリッシュ/サブスクライブやリアルタイム データのニーズに拡張します。

    コーディングとスケーリングを楽しんでください!


    1. Redisエンタープライズモニタリングオプション

      新しい役割を開始し、最初の顧客との最初の会議に到着した場合、.NETでの容量計画、DNSの問題、地理的分散、および開発に関する2日間の計画を備えています。質問は次のとおりです。「クラスターとデータベースを効率的に監視するにはどうすればよいですか?」 さて、16年の運用経験で、準備ができていると思いました。もちろん、実際には、「学べば学ぶほど、自分の知らないことがどれだけあるかがわかります。」さて、新しいソフトウェアを見ると、最初の質問の1つは、それが本番環境で正しく動作することを確認する方法です。言い換えれば、どうすればそれを監視できますか? そのことを念頭に置いて、システムの組み込み監

    2. redisデータストアでキーの名前を変更する方法– Redis RENAME | RENAMENX

      このチュートリアルでは、redis RENAMEおよびRENAMENXコマンドを使用して、redisデータストアのキーの名前を変更する方法について学習します。 RENAMEコマンド:- RENAMEコマンドで、キーの名前を古い名前から新しい名前に変更します。新しい名前のキーがすでに存在する場合は上書きされ、暗黙のDELコマンドを使用して古い名前のキーが削除されます。それ以外の場合は、古い名前のキーが新しい名前に変更されます。 redisRENAMEコマンドの構文は次のとおりです:- 構文:- redis host:post> RENAME <old name> &