分散キャッシュは、アプリケーションのパフォーマンスとスケーラビリティを向上させるため、高トランザクション アプリケーションの開発者の間で非常に人気が高まっています。 そして、この人気は、開発者がリレーショナル データベースを検索するのと同じように検索できるようにしたいと考えている、ますます多くのデータをキャッシュに保存していることを意味します。
ただし、多くの分散キャッシュの大きな制限の XNUMX つは、(キー、値) ハッシュテーブル インターフェイスのみを提供することです。 つまり、キャッシュされたアイテムを取得するには、そのキーを知っている必要があります。 しかし、現実にはこれが常に可能であるわけではなく、多くの場合、他の検索基準 (例: 「ニューヨークの顧客をすべて教えてください」) に基づいてデータを検索する必要があります。 したがって、分散キャッシュを検索できない場合は、キーが常にわかっているデータのみをキャッシュする可能性があります。 また、これにより、アプリケーションのパフォーマンスとスケーラビリティを大幅に向上させる大量のデータをキャッシュすることができなくなります。
幸いなことに、 NCache 非常に強力な SQL のようなクエリ機能 (オブジェクト クエリ言語 (OQL) と呼ばれます) を使用すると、キーだけでなくオブジェクトの属性に基づいてキャッシュを検索できます。 また、.NET アプリケーションの場合は、 NCache LINQ 統合を提供し、LINQ を介してキャッシュを検索できるようにします。
LINQ は、 .NET Framework これには、言語に統合されたクエリ、設定、変換操作が含まれます。 また、オブジェクトの世界とデータの世界を接続し、検索を非常に簡単かつ管理しやすくします。 さらに、LINQ を使用すると、独自のデータ ストレージを統合できます。
NCache LINQ プラグインを提供します。 したがって、.NET アプリケーションから LINQ クエリを発行し、このクエリはバックグラウンドで実行されます。 NCache 分散キャッシュと結果セットがアプリケーションに返されます。 NCache 「」という名前のクラスを実装することで LINQ と統合されます。NCacheQuery」は、提供される「IQueryable」と呼ばれるインターフェースをさらに実装します。 .NET framework。 この統合により、キャッシュされたアイテムに対して LINQ クエリを実行できます。
以下に LINQ クエリのソース コード例を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
namespace NCacheLINQ { class Program { static void Main (string[] args) { IQueryable products = new NCacheQuery (_cache); try { var result1 = from product in products where product.ProductID > 10 select product; if (result1 != null) { foreach (Product p in result1) { Console.WriteLine ("ProductID : " + p.ProductID); } } else { Console.WriteLine ("No record found."); } } catch (Exception) { Console.WriteLine (_error); } } } } |
要約すると、LINQ が登場する前は、メモリ内コレクションのクエリはこれほど簡単で管理しやすいものではありませんでした。 NCache 与える LINQの統合 これにより、コードを変更する必要がなく、アプリケーションに新しいアセンブリ参照と名前空間を追加するだけで済みます。
だから、完全に機能する60日間の試用版をダウンロードしてください NCache Enterprise 自分で試してみてください。