インメモリ分散キャッシュは、アプリケーションのスケーラビリティとパフォーマンスの向上に役立つため、マルチサーバー環境で実行されるアプリケーションで非常に人気があります。 それまで .NET Framework 3.5System.Web.Caching名前空間の下のWebアプリケーションでのみ使用可能なASP.NETキャッシュオブジェクトがありました。 しかし、 .NET Framework 4.0、.NET 4.0キャッシュは、すべてのタイプの.NETアプリケーションのSystem.Runtime.Caching名前空間の下に追加されます。 .NET 4.0キャッシュには、ASP.NETキャッシュと同様の機能があります。 ただし、ASP.NET Cacheとは異なり、必要に応じてカスタマイズされた方法で実装できる抽象クラスObjectCacheがあります。 したがって、本質的に.NET 4.0キャッシュは拡張できますが、ASP.NETキャッシュは拡張できません。 また、MemoryCacheは、.NET4.0Cacheのデフォルトのメモリ内キャッシュ実装です。 次に例を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
private static ObjectCache cache = MemoryCache.Default; private CacheItemPolicy policy = null; private CacheEntryRemovedCallback callback = null; // Registering callbacks and policies… callback = new CacheEntryRemovedCallback(this.MyCachedItemRemovedCallback); policy = new CacheItemPolicy(); policy.Priority = (MyCacheItemPriority == MyCachePriority.Default) ? CacheItemPriority.Default : CacheItemPriority.NotRemovable; policy.RemovedCallback = callback; HostFileChangeMonitor changeMonitor = new HostFileChangeMonitor(FilePath); policy.ChangeMonitors.Add(changeMonitor); // Add inside cache… cache.Set(CacheKeyName, CacheItem, policy); |
.NET 4.0 Cacheのデフォルト実装MemoryCacheの4.0つの制限は、スタンドアロンのインプロセスキャッシュであるということです。 .NETアプリケーションがマルチサーバー環境で実行されている場合、複数のサーバー間でキャッシュを同期できる分散キャッシュが必要なため、これを使用することはできません。 しかし幸いなことに、.NET XNUMXキャッシュアーキテクチャでは、サードパーティの分散キャッシュソリューションをプラグインして拡張することができます。
このニーズに対処するために、 Alachisoft は、特にWebファーム/ガーデンの場合に、データの同期、分散、およびスケーラビリティの問題を解決できる、使いやすい.NET4.0キャッシュプロバイダーを実装しました。 このプロバイダーは基本的に統合します NCache .NET4.0キャッシュを使用します。 NCache .NET用の非常に人気のあるエンタープライズレベルの分散キャッシュです。 終えた NCacheプラグインできるの.NET4.0キャッシュプロバイダー NCache 分散キャッシュの利点を実現するためにアプリケーションを使用します。 それがいかに簡単にできるかをお見せしましょう NCache いくつかのステップで。
- GUIベースのクラスター化(分散)キャッシュを作成する NCache マネジャー。 「」という名前のクラスター化されたキャッシュを作成しましたMyClusterCache"。
- キャッシュを開始して、使用できるようにします。
- の参照を追加 Alachisoft.NCache.ObjectCacheProviderライブラリからアプリケーションへの「NCacheInstallDir /NCache/integration/DotNet4.0キャッシュプロバイダー「
- プロジェクトに次の名前空間を含めます。
1using Alachisoft.NCache.ObjectCacheProvider; - 以下に示すように、CacheProvider(ObjectCacheから継承)を初期化し、キャッシュ名をプロバイダーに渡します。
1234ObjectCache _cache;string _cacheId = "MyClusterCache" ;_cache = new CacheProvider(_cacheId); - これで、CacheProviderコマンドを使用して、キャッシュに対してすべてのキャッシュ関連操作を実行できます。
これは、拡張された.NET4.0の完全な例です。 NCache:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
ObjectCache _cache; string _cacheId = "MyClusterCache" ; // Initialize with NCache’s .NET 4.0 Cache Provider. _cache = new CacheProvider(_cacheId); // Registering callbacks and policies… NCacheFileChangeMonitor changeMonitor = new NCacheFileChangeMonitor(fileNames); CacheItemPolicy ciPolicy = new CacheItemPolicy(); ciPolicy.ChangeMonitors.Add(changeMonitor); ciPolicy.RemovedCallback += new CacheEntryRemovedCallback(onCacheEntryRemoved); //Add the dependent items in the cache. _cache.AddItems(ciPolicy, 0, totalKeys); |
NCache .NET 4.0キャッシュの実装には、ChangeMonitorのカスタム実装も含まれます。 NCacheEntryChangeMonitor、 NCacheFileChangeMonitor、 NCacheSqlChangeMonitor & NCacheOracleChangeMonitor エントリ、ファイル、SQL、およびOracleベースの変更にそれぞれ対応します。 終えた NCacheの.NET4.0キャッシュインターフェイスの実装により、.NET 4.0キャッシュを標準として採用できると同時に、マルチサーバー環境で実行されている.NETアプリケーション用のエンタープライズレベルの分散キャッシュのメリットを享受できます。
やあやあ!
NCache ObjectCacheProvider for .Net 4.0 Cacheは正式に廃止されたため、アセンブリ Alachisoft.NCache.ObjectCacheProviderは同梱されなくなりました NCache インストール。 これは、アプリケーションブロックのキャッシュ機能が組み込まれているためです。 .NET Framework 4.0およびEnterpriseライブラリは、.Net5.0以降のリリースで非推奨になりました。 現在の.NETキャッシングのサポートには、次のようなサードパーティの統合を制限するプロバイダーモデルは付属していません。 NCache プラグインします。
あなたが使用することができます NCache オブジェクトキャッシング(アプリケーションデータキャッシング)オブジェクトをキャッシングするためのAPI NCache 以下のリンクのガイドラインに従ってください。
https://www.alachisoft.com/resources/docs/ncache/help/basic-cache-operations.html?mw=MjQw&st=MQ==&sct=MA==&ms=QwAAEAAAAAAAAAACASgE
こんにちはイクバル、
ブログ「分散キャッシュを使用するように.NET4.0キャッシュを構成する方法」で提供されているコードを実装しようとしています。
の試用版をダウンロードしました NCache Enterprise 4.6.
の参照を追加する必要があります Alachisoft.NCache.ObjectCacheProviderライブラリからアプリケーションへの「NCacheInstallDir /NCache/integration/DotNet4.0キャッシュプロバイダー」が表示されない Alachisoft.NCacheインストールディレクトリの統合フォルダの下にある.ObjectCacheProvider.dll。
どこに行けばいいのか、さらに案内してもらえますか? Alachisoft.NCache.ObjectCacheProvider.dll?
この機能はで利用できますか Ncache 4.6? はいの場合、それを達成する方法は?
できるだけ早くあなたから連絡をもらいたいです。
おかげで、
セジャル