ASP.NET Core キャッシュ - 概要

現代のウェブアプリケーションには、高速なパフォーマンスとスケーラビリティが求められます。アプリケーションの規模が大きくなると、データベースクエリの頻繁な実行によって動作が遅くなり、パフォーマンスのボトルネックや応答性の低下につながる可能性があります。

ASP.NETコア はスケーラブルなWebアプリケーションを構築するための強力なフレームワークですが、 分散キャッシュソリューション ような NCache頻繁にアクセスされるデータをキャッシュすると、データベースの負荷が軽減され、応答時間が長くなり、スケーラビリティが向上します。

分散キャッシュの利点、実際の使用例、そして統合方法について議論しましょう。 NCache ASP.NET Coreアプリケーションを使用する場合。

 

ASP.NET Coreにおける分散キャッシングとは何ですか?

分散キャッシュは、頻繁に使用されるデータを複数のサーバーに保存し、スケーラブルで信頼性の高い インメモリデータストアこれにより、レイテンシが短縮され、データベース クエリが最小限に抑えられ、アプリケーションの応答性が向上します。 NCache 1 ミリ秒未満の応答時間を実現し、クラスター環境で 1 秒あたり 200 万件を超えるリクエストを処理できることがベンチマークで確認されています。

機能 技術的およびビジネス上のメリット
パフォーマンスを向上させた データをメモリ内にキャッシュすることで、1ミリ秒未満の応答時間を実現します。 コストのかかるデータベースへの接続とネットワーク遅延を大幅に削減します。
線形スケーラビリティ 実行時にクラスターにサーバー ノードを追加することで増大するトランザクション負荷を処理し、任意の数のユーザーに対して一貫したパフォーマンスを確保します。
高可用性 自己修復型のピアツーピア動的クラスターを利用して、サーバーのメンテナンスやクラッシュ時でも 100% の稼働率と単一障害点の排除を保証します。
データの信頼性 マルチノード レプリケーション トポロジを介してデータの整合性を維持し、データベース依存関係を介してキャッシュをバックエンドと同期させます。
 

設定 NCache ASP.NET Core向け

インストールと設定を行うには、以下の手順に従ってください。 NCache ASP.NET Coreアプリケーション向け。

ステップ1:インストール NCache

edgeRX™の導入 NCache サーバー

インストールを開始する NCache 公式サイトからの2つのサーバー上のサーバー。

edgeRX™の導入 NCache クライアントSDK

ASP.NET Core アプリケーションをキャッシュ サーバーに接続するには、 NCache クライアントSDK NuGetを使用する:

Install-Package Alachisoft.NCache.SDK

確認してください ネットワークとファイアウォールの設定 アプリケーションとキャッシュ サーバー間の通信を許可します。

ステップ2:クラスター化されたキャッシュを作成する

A クラスター化されたキャッシュ キャッシュされたデータを複数のサーバーに分散することで、スケーラビリティが向上し、高可用性が確保されます。

  1. ネットワークの確認 接続性 - キャッシュ ノードが指定されたネットワーク ポートを介して通信できることを確認します。
  2. 構成 NCache -   NCache 管理センター or PowerShellの クラスター化されたキャッシュインスタンスを作成します。
  3. キャッシュノードの追加 - 複数のサーバーを追加してパフォーマンスと信頼性を向上させます。
  4. キャッシュの状態を監視する - 同期とノードの可用性を追跡する NCacheの監視ツール。

ステップ3: .NETクライアントのインストールと構成

セットアップ後 NCacheASP.NET Core アプリケーションがキャッシュに接続するように構成します。

Program.cs (修正)

using Alachisoft.NCache.Client;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ICache>(_ => CacheManager.GetCache("demoCache"));

var app = builder.Build();
app.Run();
 

使い方 NCache ASP.NET Core において

1. キャッシュからデータを取得する

このメソッドは、製品 ID を使用してキャッシュから複数の製品を一括で取得し、キャッシュ サーバーへの呼び出し回数を削減します。

public Dictionary<string, Product> RetrieveProducts(List<int> productIds)
{
    List<string> cacheKeys = productIds.Select(id => $"Product:{id}").ToList();
    Dictionary<string, Product> cachedProducts = _cache.GetBulk<Product>(cacheKeys);
    return cachedProducts;
}

2. キャッシュへのデータの追加

このメソッドは、キャッシュから製品を取得しようとします。製品が存在しない場合は、データベースから取得し、有効期限付きでキャッシュに追加します。

public Product GetProduct(int productId)
{
    string cacheKey = $"Product:{productId}";
    Product product = _cache.Get<Product>(cacheKey);

    if (product == null)
    {
        product = FetchProductFromDB(productId);
        var cacheItem = new CacheItem(product)
        {
            Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
        };
        _cache.Add(cacheKey, cacheItem);
    }
    
    return product;
}

3. キャッシュ内のデータの更新/挿入

このメソッドは、まずデータベース内の製品を更新し、次に指定された有効期限でキャッシュされた製品を挿入または更新します。

public void UpdateProduct(int productId, Product updatedProduct)
{
    // Update the database first
    UpdateProductInDB(productId, updatedProduct);
    
    // Update the cache after successful database update
    string cacheKey = $"Product:{productId}";
    var cacheItem = new CacheItem(updatedProduct)
    {
        Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
    };
    _cache.Insert(cacheKey, cacheItem);
}

4. キャッシュされたデータの削除

このメソッドは、キャッシュ キーを使用して、キャッシュから複数のエントリを一度に削除します。

public void RemoveData(List<string> keys)
{
    _cache.RemoveBulk(keys);
}
 

の高度な機能とは NCache?

NCache パフォーマンスを向上させるために、エンタープライズ レベルの追加のキャッシュ機能を提供します。

 

始める NCache 今日!

ASP.NET Core アプリケーションを最適化するには NCache! データベースの負荷を軽減し、パフォーマンスを向上させ、簡単に拡張できます。

よくある質問(FAQ)

NCache 頻繁にアクセスされるデータを分散型インメモリキャッシュに保存することで、パフォーマンスを向上させます。これにより、データベースの負荷とネットワーク遅延が大幅に軽減され、従来のデータベース検索と比較して、1ミリ秒未満の応答時間を実現します。

単一のサーバーに限定されるInProcキャッシュとは異なり、 NCache ウェブファーム全体でデータを共有する分散アーキテクチャを提供します。これにより、単一障害点が排除され、アプリケーショントラフィックの増加に応じて線形に拡張できます。

Yes. NCache ASP.NET向けの高性能な分散セッション状態プロバイダーを提供します。これにより、すべてのサーバーノード間でセッションデータの可用性と一貫性が維持され、Webサーバーがダウンした場合でも高い可用性が確保されます。

NCache SQL のような検索、イベント調整のための Pub/Sub メッセージング、キャッシュが常にバックエンド データ ソースと同期されるようにするデータベース依存関係などのエンタープライズ レベルの機能が含まれています。

お問い合わせ

電話

+1 214-619-2601 (米国)

+44 20 7993 8327 (英国)

©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。