データキャッシュ NCache (クイックピーク)

データキャッシュについて簡単に見てみましょう NCache。 その点に注意してください NCache is 業界唯一の 100% ネイティブ .NET キャッシュ ソリューション。 その方法は次のとおりです NCache 通常は、データ キャッシュのために企業に導入されます。ご覧のとおり、非常に高速でスケーラブルな別のキャッシュ層があります。 NCache アプリケーションでより多くのトランザクション容量が必要な場合、キャッシュ層にサーバーを追加できます。

NCache 企業での展開

アプリケーションサーバー上のこれらのキャッシュにも注意してください。これらはクライアントキャッシュと呼ばれます。 クライアントキャッシュ 分散キャッシュ環境で InProc 速度を実現します。ここでの目標は、できるだけ多くのデータをキャッシュして、約 80 ~ 90% の時間でキャッシュからデータを見つけられるようにし、コストのかかるデータベース トリップを回避することです。これにより、アプリケーションのパフォーマンスとスケーラビリティが向上します。

データキャッシュAPI

データキャッシュAPIの概要は次のとおりです。 NCache.NET と Java の両方で使用できます。非常に簡単です。名前でキャッシュに接続し、cache.Get、Add、Insert、Remove を実行します。これらは非同期バージョンです。明らかに、これはキャッシュ全体の小さなサブセットです。

.NET API

  • 接続

    ICache cache = CacheManager.GetCache(name);
    cache.Dispose();
  • データの取得

    Employee emp = cache.Get<Employee>(key); 
    bool isPresent = cache.Contains(key);
  • データの書き込み

    cache.Add(key, emp);
    cache.AddAsync(key, emp);
    
    cache.Insert(key, emp);
    cache.InsertAsync(key, emp);
    
    Employee emp = cache.Remove(key);
    cache.RemoveAsync(key);

Java API

  • 接続

    Cache cache = CacheManager.getCache(name);
    cache.close();
  • データの取得

    Employee emp = cache.get(key, Employee.class); 
    boolean isPresent = cache.contains(key);
  • データの書き込み

    cache.add(key, emp);
    cache.addAsync(key, emp);
    
    cache.insert(key, emp);
    cache.insertAsync(key, emp);
    
    Employee emp = cache.remove(key);
    cache.removeAsync(key);

キャッシュするデータのタイプ

参照データ

次に、キャッシュするデータの種類について説明します。1 つ目は参照データです。参照データは、実際にはあまり頻繁に変更されないデータです。これらは製品カタログです。静的なデータではありませんが、数時間、数日、または数週間で変更される可能性があります。また、すべての製品など、データセット全体をキャッシュする必要があります。そうすれば、後でキャッシュに対して SQL クエリを実行できます。

トランザクションデータ

キャッシュする 15 番目のタイプのデータはトランザクション データです。このデータは実行時に作成されます。これは顧客や注文です。このデータは非常に頻繁に変更されますが、5 秒、数分、10 分、XNUMX 分程度キャッシュできます。通常は、ユーザー セッションの期間中です。

オブジェクトとコレクション

次の質問は、このデータをどのようにキャッシュするかです。オブジェクト、.NET または Java またはその他の言語オブジェクトとしてキャッシュします。または、コレクションを使用している場合は、.NET または Java コレクションとしてキャッシュします。コレクション全体を 1 つのオブジェクトとしてキャッシュすることも、コレクションの各項目を個別にキャッシュすることもできます。

データ構造(分散)

NCache また、List、Queue、Set、Dictionary、Counter などの非常に強力な分散データ構造も提供されます。これらにより、複雑なデータをまとめてキャッシュできます。

キャッシュするデータの種類

  1. 参照データ

    • 頻繁に変更されない(時間、日、週)
    • データセット全体をキャッシュする (SQLクエリの場合)
    • 永続データ (データベースより)
  2. トランザクションデータ

    • 頻繁に変更されます(秒、分)
    • 永続データ(データベースから)
  3. オブジェクト

    • .NET / Java オブジェクト
  4. コレクション

    • .NET / Java コレクション
    • コレクション全体を 1 つのアイテムとしてキャッシュするか、各アイテムを個別にキャッシュします。
  5. データ構造

    • リスト、キュー、セット、辞書、カウンター
    • 複雑なデータを1つのアイテムとしてキャッシュする

キャッシュを最新の状態に保つ

まず最初に覚えておかなければならないことの一つは、キャッシュを最新の状態に保つことです。このデータはデータベースにも存在し、キャッシュはデータベースと一貫性を保つ必要があります。キャッシュを最新の状態に保つには4つの方法があります。 NCache 提供します。

有効期限(絶対)

ナンバーワンは 有効期限 参照データまたはトランザクション データの性質に基づいてデータを期限切れにします。

データベースと同期する

2番目は NCache キャッシュをデータベースと同期するための 2 つのイベント ベースの方法を提供します。1 つは SQL 依存関係、もう 1 つは Oracle キャッシュ依存関係です。 NCache また、ポーリング ベースの方法でキャッシュとデータベースを同期することもできます。

カスタムデータソースとの同期

キャッシュを最新の状態に保つ3つ目の方法は、キャッシュをカスタムデータソースと同期することです。これには当然、カスタムコードが必要になります。 NCache so NCache それを呼びます。

キャッシュ内のデータ関係

4番目は NCache キャッシュ内のデータの関係を管理するためです。キャッシュ内に1対1、1対多の関係がある場合、多くのアイテムが変更されたり、1つのアイテムが変更されたりすると、多くの側も更新する必要があるでしょう。 NCache それを管理します。

キャッシュを最新に保つ

データベースと一貫性がある

  1. 有効期限(絶対)

    • 参考データ: 有効期限(時間、日、週)
    • トランザクションデータ: 有効期限(秒、分)
  2. データベースと同期する

    • SqlDependency (イベント)、OracleCacheDependency(イベント)、データベース依存関係(ポーリング)
  3. カスタムデータソースとの同期

    • カスタム依存関係(キャッシュサーバー上のカスタムコード)
    • ファイルの依存関係
  4. キャッシュ内のデータ関係

    • キャッシュ依存性(キーベース)。1対1と1対多の関係

キャッシュ内のデータを検索する

グループ、タグ、名前付きタグ

大量のデータをキャッシュし始めると、 NCache キーバリューストアなので、キーに基づいてすべてを取得するだけでは不便です。そのため NCache グループ、タグ、名前付きタグなどの強力な機能が提供され、論理的にグループ化して後で取得できるようになります。

SQLクエリ

使用することもできます SQLクエリ オブジェクトの属性、グループ、タグ、名前付きタグに基づいて検索します。

LINQクエリ

.NETアプリケーションをお持ちの場合は、 LINQクエリ そのために。

キャッシュ内のデータを検索する

強力な検索

  1. グループ、タグ、名前付きタグ

    • データを論理的にグループ化して、後で簡単に見つけられるようにする
  2. SQLクエリ

    • オブジェクト属性、グループ、タグ、名前付きタグに基づいて
    • SELECT、GROUP BY、UPDATE をサポート
  3. LINQ クエリ (.NET のみ)

    • 通常の.NETまたはEF Core経由

リードスルーキャッシュ

リードスルー

NCache また、アプリケーションを簡素化するリードスルー キャッシュも提供されます。リードスルー キャッシュでは、cache.Get を実行してもキャッシュにデータがない場合、実際にはカスタム コードのリードスルー ハンドラーが呼び出され、データベースからそのデータを取得します。

ライトスルー

ライトスルーキャッシュもあります。これはキャッシュを行うときに行われます。追加、挿入、または削除、 NCache カスタム コードを呼び出し、データベースを更新するためのライトスルー ハンドラーを再度呼び出します。

後書き

ライトビハインドは基本的に非同期で実行されるライトスルーなので、アプリケーションはデータベースが更新されるのを待つ必要がなくなり、アプリケーションのパフォーマンスが向上します。

リードスルーキャッシュ

アプリケーションを簡素化

  1. 読み飛ばし

    • キャッシュ呼び出し カスタムコード データベースから取得します。 自動リロード: 有効期限切れ時
      DB同期(アイテムを削除する代わりに)
  2. ライトスルー

    • キャッシュ呼び出し カスタムコード データベースを更新します。
  3. 後ろに書く

    • 非同期 ライトスルー。 一括処理 のためにペンを持つ時間も見つけています。
    • 改善する アプリケーションのパフォーマンス アップデートについて

キャッシュは自己完結型

キャッシュローダー

NCache また、キャッシュは自己完結型で、常に更新され、自動的に更新されます。 キャッシュローダー 起動時に呼び出されます。これはカスタムコードです NCache これを呼び出してデータベースからデータをロードします。並列ロード用に複数のデータ セットを定義できます。

キャッシュリフレッシャー

もあります キャッシュリフレッシャー これは、毎日、毎週、毎月、または任意のカスタム間隔で、あるいはオンデマンドで繰り返し呼び出されます。また、呼び出されるたびにキャッシュが更新されます。更新とは、既存のデータを更新するか、新しいデータを追加することを意味します。繰り返しますが、これはこれらすべてを実行するカスタム コードです。

キャッシュは自己完結型

常に新鮮で活気のある

  1. キャッシュローダー

    • 起動時: キャッシュはデータソースからロードされます
    • 実行します カスタムコード それのために。
    • 複数を定義する データセット 並列ロード用
  2. キャッシュリフレッシャー

    • 繰り返し: キャッシュは自動的に更新されます。既存のデータを更新し、新しいデータを追加します。
    • 実行します カスタムコード 複数の データセット.
    • 毎日、毎週、毎月、任意の間隔、またはオンデマンドで実行します。

データキャッシュの統合

.NET統合

.NETアプリケーションの場合 NCache は、大阪で EF Coreとの統合. NCache 実装済み EFコア拡張メソッド、シームレスに使用できる EF Core キャッシュが提供されます。 NCache NHibernate Second Level Cacheも提供されています。また、従来の.NETアプリケーションでは NCache 提供しています EF6 キャッシュ プロバイダ。

.NET統合

データキャッシング用

  1. EFコアキャッシュ

    • シームレスに使えるEF Core拡張メソッド
    • 参照データとトランザクションデータの管理
  2. NHibernate Cache

    • エンティティレベルキャッシュ(コードの変更はありません)
  3. EF 6 キャッシュ

    • EF 6.2 以前の ADO.NET プロバイダー (コードの変更はありません)

Java統合

Javaアプリケーションの場合 NCache 提供している Hibernate の第 XNUMX レベル キャッシュ 春のアプリケーションの場合 NCache あなたに与えます 春のキャッシュ 注釈を通じて使用できます。 NCache 人気の JCache API Java 環境で。

Java統合

データキャッシング用

  1. Hibernateキャッシュ

    • エンティティレベルキャッシュ(コードの変更はありません)
  2. 春のキャッシュ

    • 注釈ベース
  3. JCache API

    • JSR-107ベースの標準Java API

デモを予約

までご連絡ください デモを予約する 学ぶ NCache アーキテクチャ (NAIST) と 機能を使用 戦略と使用方法についても詳しく説明します NCache ご応募ありがとうございました!

次はどうする?

お問い合わせ

電話

+1 214-619-2601 (米国)

+44 20 7993 8327 (英国)

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