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

Redis キャッシュによる .NET Core 6 のパフォーマンスの向上:ステップバイステップ ガイド

はじめに

今日のペースの速いデジタル世界では、アプリケーションは高いパフォーマンスと応答性を実現することが期待されています。これを実現する 1 つの方法は、頻繁にアクセスされるデータを保存するキャッシュ メカニズムを実装し、データベースからデータを繰り返しフェッチする必要性を減らすことです。一般的なメモリ内データ ストアである Redis は、.NET Core アプリケーションに堅牢なキャッシュ ソリューションを提供します。この記事では、実践的な例を使用して、.NET Core 6 アプリケーションに Redis キャッシュを統合する方法を検討します。

前提条件

始める前に、次の前提条件がシステムにインストールされていることを確認してください。

<オル>
  • .NET Core 6 SDK: .NET Core 6 SDK 以降がインストールされていることを確認してください。公式 .NET Web サイトからダウンロードできます。
  • Redis サーバー: Redis サーバーをローカルにインストールして実行するか、Redis クラウド サービスを使用します。
  • ウィンドウに Radis サーバーをインストールする


    Redis をダウンロード

    この GitHub ページから、64 ビット Windows 用のやや古いプリコンパイル済みバージョンの Redis をダウンロードできます:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi

    このリンクをクリックすると .msi ファイル を取得します。 これはWindows インストーラーです。 。次に、ダウンロード に移動します。 フォルダに移動し、このファイルを見つけます。

    次に、そのファイルをクリックして Redis をインストールします。

    Redis サーバーは C:\Program Files\Redis にインストールされている必要があります。 。そこには、redis-server. という名前の .exe ファイルがあります。

    Redis キャッシュによる .NET Core 6 のパフォーマンスの向上:ステップバイステップ ガイド

    次に、コマンド ラインを開いて次のコマンドを入力します。

    redis-server

    Redis キャッシュによる .NET Core 6 のパフォーマンスの向上:ステップバイステップ ガイド

    Redis サーバーが実行を開始しました。

    これで、このコマンドで Redis サーバーの更新と変更を監視できるようになります。

    redis-cli monitor

    Redis キャッシュによる .NET Core 6 のパフォーマンスの向上:ステップバイステップ ガイド

    .NET Core 6 コンソール アプリケーションを作成する

    dotnet new console -n RedisCacheDemo

    プロジェクト フォルダーに移動します

    cd RedisCacheDemo

    必要なパッケージをインストールする

    dotnet add package StackExchange.Redis

    Redis 接続の構成

    Program.cs 内 ファイルに必要なステートメントを追加し、Main で Redis 接続を構成します。 メソッド:

    static void Main(string[] args)
    {
     var configuration = ConfigurationOptions.Parse("localhost:6379");
     var redisConnection = ConnectionMultiplexer.Connect(configuration);
     var redisCache = redisConnection.GetDatabase();
     Console.WriteLine("Fetching data with caching:");
     var cachedData = GetDataWithCaching(redisCache);
     Console.WriteLine($"Result: {cachedData}");
     Console.WriteLine("Fetching data without caching:");
     var uncachedData = GetDataFromDatabase();
     Console.WriteLine($"Result: {uncachedData}");
     redisConnection.Close(); //It is important to close the connection
    }
    static string GetDataFromDatabase()
    {
     // Simulate fetching data from the database
     // Replace this with your actual database fetching logic
     Thread.Sleep(2000); // Simulating latency
     return "Start";
    }
    static string GetDataWithCaching(IDatabase redisCache)
    {
     // redisCache.KeyDelete("cachedData"); // For Delete the Cache
     // redisCache.StringSet("cachedData", "Test", TimeSpan.FromMinutes(1)); // For Update the Cache
     string cachedData = redisCache.StringGet("cachedData");
     if (string.IsNullOrEmpty(cachedData))
     {
     cachedData = GetDataFromDatabase();
     redisCache.StringSet("cachedData", cachedData, TimeSpan.FromMinutes(1));
     }
     return cachedData;
    }

    このプログラムの実行を続行してください。

    この出力では、キャッシュがある場合とない場合の結果は同じです。これは、出力が初めて生成されたときにキャッシュに保存されるためです。ただし、コードに変更がある場合、結果は異なります。

    static string GetDataFromDatabase()
    {
     // Simulate fetching data from the database
     // Replace this with your actual database fetching logic
     Thread.Sleep(2000); // Simulating latency
     return "Last";
    }

    コードの値を更新したので、再実行します。

    この出力では、最初の値はキャッシュから取得され、2 番目の値はキャッシュを使用せずに取得されます。

    結論

    おめでとうございます! Redis キャッシュが .NET Core 6 アプリケーションに正常に統合されました。キャッシュを実装することで、アプリケーションのパフォーマンスと応答性が向上し、頻繁にアクセスされるデータの処理がより効率的になりました。


    1. Envflow の構築:Laravel および Upstash Redis と環境変数を安全に共有する

      私は最近、Nuno Maduro のプロジェクト Pyre にインスピレーションを受けています。これは、必要な人に短期間の秘密メッセージを送信できる Web アプリです。これらのメッセージは保存時に暗号化されており、あなたまたは復号化リンクを共有した人だけがメッセージを読むことができます。 私は Upstash Redis で同様のものを構築したかったので、環境変数の共有というニッチな分野を選択しました。きっと、ある時点でチームメイトと秘密を共有する必要があり、それを安全に行うことができるシステムを構築する方法を疑問に思ったことがあると思います。 Envflow を紹介します。これは私が構

    2. Redis HGETALL –ハッシュ値に含まれるすべてのフィールド/値のペアを取得する方法

      このチュートリアルでは、キーに格納されているハッシュ値に含まれるすべてのフィールドと値のペアを取得する方法について学習します。このために、Redis HGETALLを使用します コマンド。 HGETALLコマンド このコマンドは、キーに格納されているハッシュ値に含まれるすべてのフィールドとそれに関連する値を返します。キーが存在しない場合は空のリストが返され、キーは存在するがキーに格納されている値がハッシュデータ型ではない場合はエラーが返されます。 RedisHGETALLコマンドの構文は次のとおりです。- 構文:- redis host:post> HGETALL <ke