現代のウェブアプリケーションには、高速なパフォーマンスとスケーラビリティが求められます。アプリケーションの規模が大きくなると、データベースクエリの頻繁な実行によって動作が遅くなり、パフォーマンスのボトルネックや応答性の低下につながる可能性があります。
ASP.NETコア はスケーラブルなWebアプリケーションを構築するための強力なフレームワークですが、 分散キャッシュソリューション ような NCache頻繁にアクセスされるデータをキャッシュすると、データベースの負荷が軽減され、応答時間が長くなり、スケーラビリティが向上します。
分散キャッシュの利点、実際の使用例、そして統合方法について議論しましょう。 NCache ASP.NET Coreアプリケーションを使用する場合。
分散キャッシュは、頻繁に使用されるデータを複数のサーバーに保存し、スケーラブルで信頼性の高い インメモリデータストアこれにより、レイテンシが短縮され、データベース クエリが最小限に抑えられ、アプリケーションの応答性が向上します。 NCache 1 ミリ秒未満の応答時間を実現し、クラスター環境で 1 秒あたり 200 万件を超えるリクエストを処理できることがベンチマークで確認されています。
| 機能 | 技術的およびビジネス上のメリット |
|---|---|
| パフォーマンスを向上させた | データをメモリ内にキャッシュすることで、1ミリ秒未満の応答時間を実現します。 コストのかかるデータベースへの接続とネットワーク遅延を大幅に削減します。 |
| 線形スケーラビリティ | 実行時にクラスターにサーバー ノードを追加することで増大するトランザクション負荷を処理し、任意の数のユーザーに対して一貫したパフォーマンスを確保します。 |
| 高可用性 | 自己修復型のピアツーピア動的クラスターを利用して、サーバーのメンテナンスやクラッシュ時でも 100% の稼働率と単一障害点の排除を保証します。 |
| データの信頼性 | マルチノード レプリケーション トポロジを介してデータの整合性を維持し、データベース依存関係を介してキャッシュをバックエンドと同期させます。 |
インストールと設定を行うには、以下の手順に従ってください。 NCache ASP.NET Coreアプリケーション向け。
edgeRX™の導入 NCache サーバー
インストールを開始する NCache 公式サイトからの2つのサーバー上のサーバー。
edgeRX™の導入 NCache クライアントSDK
ASP.NET Core アプリケーションをキャッシュ サーバーに接続するには、 NCache クライアントSDK NuGetを使用する:
Install-Package Alachisoft.NCache.SDK
確認してください ネットワークとファイアウォールの設定 アプリケーションとキャッシュ サーバー間の通信を許可します。
A クラスター化されたキャッシュ キャッシュされたデータを複数のサーバーに分散することで、スケーラビリティが向上し、高可用性が確保されます。
セットアップ後 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();
このメソッドは、製品 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;
}
このメソッドは、キャッシュから製品を取得しようとします。製品が存在しない場合は、データベースから取得し、有効期限付きでキャッシュに追加します。
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;
}
このメソッドは、まずデータベース内の製品を更新し、次に指定された有効期限でキャッシュされた製品を挿入または更新します。
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);
}
このメソッドは、キャッシュ キーを使用して、キャッシュから複数のエントリを一度に削除します。
public void RemoveData(List<string> keys)
{
_cache.RemoveBulk(keys);
}
NCache パフォーマンスを向上させるために、エンタープライズ レベルの追加のキャッシュ機能を提供します。
ASP.NET Core アプリケーションを最適化するには NCache! データベースの負荷を軽減し、パフォーマンスを向上させ、簡単に拡張できます。
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。