NCache には、データ要素間のXNUMX対XNUMX、XNUMX対多、および多対多の関係を持つリレーショナルデータを管理できるキャッシュ依存機能があります。 キャッシュの依存関係により、分散キャッシュ内のデータの整合性を維持できます。
キャッシュの依存関係を使用すると、XNUMXつのキャッシュされたアイテムが別のキャッシュされたアイテムに依存するように指定できます。 次に、XNUMX番目のキャッシュされたアイテムがアプリケーションによって更新または削除された場合、それに依存していた最初のアイテムは、によって自動的にキャッシュから削除されます。 NCache。 キャッシュの依存関係では、マルチレベルの依存関係も指定できます。
もっと読む キャッシュの依存関係。
NCache キャッシュをデータベースと自動的に同期する機能を提供します。 これにより、キャッシュ内のデータが常に最新であり、データの整合性の問題が発生しなくなります。 データベースサーバーによって発行されたイベント通知またはポーリングに基づいて、データベースの同期を構成できます。
イベントベースの同期は即時かつリアルタイムですが、データベース内のデータを頻繁に更新している場合は、かなりおしゃべりになる可能性があります。
XNUMX回のフェッチでポーリングがより効率的になるため、実際にはポーリングがはるかに効率的です。 NCache 数百、さらには数千の行を同期できます。 ただし、ポーリングは即時ではなく、通常は数秒の遅延があります。 ただし、ポーリング間隔は構成可能です。
もっと読む データベースの同期。
NCache キーだけに依存するのではなく、分散キャッシュ内のオブジェクトを検索するための複数の方法を提供します。 これには、並列SQLのようなクエリ言語、タグ、およびグループ/サブグループが含まれます。
並列SQLのようなクエリ言語を使用すると、キーではなくオブジェクト属性に基づいてキャッシュを検索できます。 そして、このクエリはすべてのキャッシュサーバーに分散されて並行して実行され、結果が統合されて返されます。 これにより、「顧客の都市がサンフランシスコであるすべての顧客オブジェクトを検索する」などのクエリを発行できます。 .NETアプリケーションから、LINQを使用してラムダ式を含む分散キャッシュを検索することもできます。
public class Program
{
public static void Main(string[] args)
{
NCache.InitializeCache("myReplicatedCache");
String query = "SELECT NCacheQuerySample.Business.Product WHERE this.ProductID > 100";
// Fetch the keys matching this search criteria
ICollection keys = NCache.Cache.Search(query);
if (keys.Count > 0)
{
IEnumerator ie = keys.GetEnumerator();
while (ie.MoveNext())
{
String key = (String)ie.Current;
Product prod = (Product)NCache.Cache.Get(key);
HandleProduct(prod);
Console.WriteLine("ProductID: {0}", prod.ProductID);
}
}
NCache.Cache.Dispose();
}
}
タグとグループ/サブグループは、キャッシュされたアイテムをグループ化するさまざまな方法を提供します。 タグは、XNUMXつのタグに複数のキャッシュされたアイテムを含めることができ、XNUMXつのキャッシュされたアイテムが複数のタグに属することができる多対多のグループ化を提供します。 また、グループ/サブグループは、キャッシュされたアイテムをグループ化する階層的な方法です。 SQLのようなクエリ言語内からもタグを検索できます。
もっと読む 分散キャッシュを照会するさまざまな方法。
一部のデータアクセスコードを分散キャッシュクラスターにプッシュすることで、アプリケーションを簡素化およびスケーリングします。 NCache キャッシュがデータソースとデータベースに直接データを読み書きできるようにするリードスルーおよびライトスルーメカニズムを提供します。
実装します IReadThruProvider
& IWriteThruProvider
インターフェイスを作成してから、コードをキャッシュクラスターに登録します。 コードはすべてのキャッシュサーバーにコピーされ、次のときに呼び出されます NCache データソースとデータベースにアクセスする必要があります。
リードスルーと有効期限およびデータベース同期を組み合わせて、有効にすることができます NCache 自動更新を実行し、必要に応じてデータの新しいコピーを自動的に再読み込みします。
見る リードスルーとライトスルー 詳細については。
NCache 非常に高速でスケーラブルなリアルタイムの強力なランタイムデータ共有およびメッセージングプラットフォームを提供します。
NCache イベント通知の助けを借りて、リアルタイムのデータ共有を可能にします。 アプリケーションが相互にコラボレーションするために使用できるイベントには、XNUMXつのタイプがあります。
XNUMXつ目は、キャッシュされたアイテムです。アプリケーションが特定のキャッシュされたアイテムへの関心を登録し、更新または削除されるたびに通知されます。
XNUMXつ目は、アプリケーションが使用できるようにするアプリケーション生成イベントです。 NCache イベント伝播プラットフォームとして、カスタムイベントを NCache クラスタ。 NCache 次に、これらのイベントを、これらのカスタムイベントに関心を示した他のクライアントアプリケーションにルーティングします。
最後に、 NCache 何かが追加、更新、または削除されるたびに個別に通知を受けることができます。
もっと読む ランタイムデータ共有。
NCache は、コンパクト シリアル化と呼ばれる非常に高速なオブジェクト シリアル化メカニズムを提供しており、使用する際にコードを変更する必要はありません。
このシリアル化は、実行時にリフレクションを使用しないため、より高速です。 また、シリアル化されたオブジェクトは、文字列ベースの長い型名を格納する代わりに、通常のシリアル化よりもコンパクトです。 NCache すべてのタイプを登録し、タイプIDのみを格納します。
そして何よりも、コードを変更する必要はありません。 NCache 実行時にシリアル化コードを一度生成し、それを何度も使用します。 最終的な結果として、アプリケーションのパフォーマンスが著しく向上します。