このビデオでは、SQLクエリを使用して検索する方法を紹介します。 NCache .NET アプリケーションで、早速始めましょう。
今、 NCache キャッシュからデータを取得するためのさまざまな機能を提供しており、その機能の1つはSQL検索または NCache クエリ機能。この機能を使用すると NCache キャッシュに対して基準ベースまたは属性ベースの検索を実行でき、しかも高いパフォーマンスが得られます。
今、 NCache 非常にスケーラブルなので、負荷が増加するたびに処理が滞ってしまうバックエンド データベースとは異なります。 NCache 複数のキャッシュサーバーを用意して負荷を分散し、高いパフォーマンスも実現します。 NCache クエリ機能を使用すると、使いやすさが向上します。 NCache SQL のようなクエリ構文を持っています。そのため、開発者がクエリを記述して実行するのは非常に簡単です。
それ以外では、この機能の設定は非常に簡単です。その設定方法もすべて紹介します。そして、 NCache 基準ベース検索を実行するための複数のオプションを提供します。
この機能を使用する利点について言えば、最初の利点は、ディスクベースのストアであるバックエンドデータベースと比較して、メモリ内のデータにアクセスするため、高いパフォーマンスが得られることです。次に、複数のキャッシュサーバーがあるため、検索のスケーラビリティが向上し、クエリの並列実行が保証されます。ここでの主な利点は、 NCache インデックス化されたデータに対して検索を実行します。これにより、データへのアクセスも高速化されるため、アプリケーションの速度が確実に高速化されます。
通常、この機能は、データが頻繁に変更されない参照データの使用例に推奨されます。非常に大きなデータがあり、データを検索するために何らかの基準を必要とするダッシュボードがある場合、この機能はそのようなシナリオに最適です。完全なデータがキャッシュされ、完全なデータがキャッシュ内に保存されていることを確認する必要があります。そうしないと、一部のクエリに基づいて部分的な結果が得られません。
それでは、この機能をアプリケーションに実装する方法についてお話ししましょう。実装手順の環境設定では、まず、次の点を確認する必要があります。 NCache インストールされ、構成されています。つまり、このキャッシュが 'ReferenceCache' として構成され、101 つのノード 102 と XNUMX でホストされていることがわかります。
私たちは別のものを持っています ビデオ これも設定できます。そして、戻ると、これがこのテストで使用するコンソール アプリケーションです。これらは、基準に基づく検索に使用するいくつかのメソッドとモデル クラスです。ここでは、顧客の注文と製品に焦点を当てます。
さて、最初のステップは、 NCache アプリケーションにエンタープライズ NuGet パッケージを追加します。それでは、NuGet パッケージ マネージャーに移動して、ここで検索します。 NCache. では、 Alachisoft.NCache.SDKこれは NuGet パッケージ、Enterprise NuGet パッケージです。ご覧のとおり、すでに 2 つのプロジェクトにインストールされています。それでは、戻りましょう。
そして、2番目のステップでは、 NCache アプリケーションの名前空間です。ここでは次のように入力します Alachisoft.NCache.Client、これで完了です。そして、クラスのひとつでもこれを実行します。これをどのように、なぜ実行するのかを説明します。 NCache.Runtime.Caching。これで完璧です。では戻りましょう。
3番目のステップは、ここでわかるようにクエリインデックスを構成することです。 NCache これを行うには3つのオプションがあります。最初のオプションはプログラムによるものです。つまり、クエリインデックス可能タグをコードに含めることができます。 NCache PowerShell コマンドライン ツール。そして、これ用の GUI ツールである Management Center があります。
プログラム的アプローチ
では、最初のアプローチ、つまりご覧のとおりのプログラムによるアプローチから始めましょう。では、戻ってみましょう。アセンブリ参照を追加した Orders クラスに移動し、ここで [QueryIndexable] と入力します。
ここでわかるように、これは完全な属性がインデックス化され、これらすべての属性に対して条件に基づく検索を実行できることを意味します。戻りましょう。
コマンドラインツールの使用
2つ目のオプションは、コマンドラインツールを使うことです。ここではPowerShellを使います。実際にここに持ってきてみましょう。すでにコピーしたコマンドがあるので、それをここに貼り付けます。このコマンドは 追加クエリ インデックス ご覧の通りのコマンドです。
まず、-CacheName、この場合は referenceCache を指定します。クラス ライブラリが存在する AssemblyPath。クエリ インデックス、インデックス作成を実行する属性を持つクラスの名前、次にクエリ インデックスを実行する属性、およびこれらの構成を実行するサーバーを指定します。
ここで Enter キーを押すと、ここでわかるように、両方のノードでクエリ インデックスが自動的に構成されます。
NCache 管理センター
最小化して、3番目のオプションである NCache 管理センターでは、戻りましょう。このキャッシュを更新して最新の構成を取得し、[詳細の表示] に移動して少し下にスクロールすると、詳細設定セクションに [クエリ インデックス] オプションがあります。ご覧のとおり、製品クラスがすでに追加されています。これは、ここに表示されているコマンド ライン ツールを使用して追加したものです。
追加ボタンをクリックし、参照をクリックすると、クラス ライブラリがある場所に移動します。私の場合は、この場所です。モデル クラスを検索してみましょう。これで完了です。開いて展開し、さらに展開して、今度は顧客を選択します。選択したクラスの追加をクリックします。ここでも、基準に基づく検索を実行する属性を選択できます。このビデオでは、完全な属性を選択しますが、検索を実行する属性が 1 つまたは 2 つある場合は、それらの属性も選択できます。[OK] をクリックし、これを確認した後、[変更を保存] をクリックします。これで完了です。すべてが完璧に見えます。
さて、メインページに戻ってキャッシュを開始しましょう。ところで、ここで紹介したオプションはすべて、ドキュメントで既に利用可能です。 クエリインデックスを構成する 完全なドキュメントが利用可能です。管理センターと、それを実行するためのコマンド ライン ツール オプションも提供されます。戻りましょう。キャッシュの準備ができました。次にアプリケーションに移りましょう。
これは、アプリケーションに SQL クエリ コマンドを実装する 4 番目のステップです。では、戻りましょう。これはアプリケーションです。ここでわかるように、まず初期化されたキャッシュに移動します。これにより、キャッシュへの接続も開始されます。まず、ここでわかるように、App.config ファイルからキャッシュ名を取得します。
これはビデオのキャッシュ値、参照キャッシュです。戻ってみましょう。これは単に GetCache API を呼び出してキャッシュ ハンドルを取得するだけです。もう一度戻ってみましょう。そして、キャッシュにいくつかのデータも追加します。
さて、SQLクエリを実装するために NCache クエリや基準に基づいた検索を実行するための特定のAPIが提供されます。最初のAPIはExecuteReaderです。アプリケーションでExecuteReaderを使用してデータを検索できます。その方法は今からお見せします。最初のメソッドを見てみましょう。まず、クエリ文字列を指定します。この文字列は、データベースでよく使用する単純なSQLのようなクエリです。そして、この文字列クエリは、クエリコマンドAPIに提供されます。 NCache。 そう、 NCache この文字列をクエリコマンドに変換し、このクエリコマンドは、ご覧のとおり、ExecuteReader APIに提供されます。 NCache SearchService.ExecuteReader API があり、そこでこのクエリ コマンドを提供します。
//region ExecuteReader
private static void QueryAll()
{
try
{
var query = "SELECT * FROM Model_Classes.Orders";
var querycommand = new QueryCommand(query);
ICacheReader reader = _cache.SearchService.ExecuteReader(querycommand, true);
PrintData<Orders>(reader);
var query1 = "SELECT * FROM Model_Classes.Product WHERE ProductID > ? AND UnitPrice < ?";
var querycommand1 = new QueryCommand(query1);
querycommand1.Parameters.Add("ProductID", 20);
querycommand1.Parameters.Add("UnitPrice", (decimal)70);
ICacheReader reader1 = _cache.SearchService.ExecuteReader(querycommand1, true);
PrintData<Product<(reader1);
}
catch (Exception)
{
throw;
}
}
では、ExecuteReaderの内部を見てみましょう。これらは、 NCache 実行リーダーを提供します。まずクエリコマンドがあり、次にgetDataがあります。これはデフォルトでtrueに設定されていますが、名前が示すように、getDataがtrueに設定されている場合、 NCache キーだけでなく、アプリケーションの完全なオブジェクトも取得します。つまり、キーと値の両方を取得したい場合は、get data を true に設定してそのままにしておくことができます。ただし、特定の基準に基づいてキーだけを使用する場合は、false に設定できます。 NCache 単にキーが与えられ、それに応じて任意の操作を実行できます。そして、ご覧のとおり、ここにチャンクサイズがあります。これは単にバイト単位で設定できます。 NCache チャンク サイズに基づいてデータをバッチで取得します。
ICacheReader ExecuteReader(QueryCommand queryCommand, bool getData = true, int chunkSize = -1);
さて、 NCache クエリ構文やどのような演算子が NCache ご覧のとおり、すべてを選択するか、いくつかの予測があります。ここでいくつかの列を選択できます。下にスクロールすると NCache クエリもサポートしています。たとえば、米国などの国にいる顧客を検索したいとします。ここにあるように、これも実行できます。また、これに関するユースケースがある場合は、オペレーターのサポートもあります。 NCache グループ化もサポートしています。ご覧のとおり、ここでは最小値と最大値を選択しています。次に、何かを並べ替えたい場合は、下にスクロールすると、キャッシュから再試行されている検索項目を並べ替えることができます。 NCache もそれをサポートしています。 NCache, NCache 自動的にソートしてアプリケーションに返します。ここでわかるように、これらのクエリに基づいてソートを実行できます。
それでは、少し下にスクロールしてアプリケーションを実行してみましょう。これで完了です。モニターを表示してみましょう。クライアントが接続され、すべて正常に見えます。リクエストの初期化、リクエストの受信、アイテムのキャッシュへの追加が行われています。戻って Enter キーを押します。これで完了です。表示されているすべての結果は、先ほど指定した基準に基づく検索に基づいています。モニターのバックグラウンドでは、いくつかのリクエストが受信され、レイテンシ アイテム、1 秒あたりの追加数が表示されています。これらはすべて良いものです。ここで実際に確認できます。すべて期待どおりに機能しています。以上が、 NCache ここでリーダーを実行します。
さて、2番目のAPIについてお話しましょう。 NCache 実行スカラーを提供する。つまり、ある基準に基づいて単一の値を取得したい場合、 NCache これもサポートされています。アプリケーションに戻って、これらのメソッドをコメント アウトします。このメソッドも不要です。次に、このメソッドのコメントを解除します。このメソッドの内部を見てみましょう。
//region ExecuteScalar
private static void QueryAverage()
{
try
{
string query = "SELECT AVG(UnitPrice) FROM Model_Classes.Product WHERE UnitsInStock > ?";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
queryCommand.Parameters.Add("UnitsInStock", 100);
// Executing QueryCommand through ICacheReader
decimal average = (decimal)_cache.SearchService.ExecuteScalar(queryCommand);
Console.WriteLine($"Average price is {average}.");
}
catch (Exception)
{
throw;
}
}
繰り返しますが、すべてがまったく同じです。クエリ文字列を指定します。このケースでは、特定の基準に基づいて単価の平均を選択するだけです。次に、それをクエリ コマンドに提供し、そのクエリ コマンドがスカラーの実行に送信されます。この API の内部を確認すると、ここで使用する必要があるパラメーターが 1 つだけあることがわかります。
object ExecuteScalar(QueryCommand queryCommand);
実際にもう一度戻ってアプリケーションを実行してみましょう。これで完了です。クライアントが接続されていると思います。では、Enter キーを押しましょう。これで完了です。バックグラウンドでモニターの 1 秒あたりのリクエスト セクションにリクエストが届きました。平均価格もここに表示されています。これですべて完了です。閉じましょう。
したがって、Execute Scalar を必要とするユースケースがある場合は、これも確実に確認できます。ここで実際にコメントしてみましょう。
さて、3番目のAPIであるExecute Non Queryに移りましょう。例えば、ある基準に基づいてデータを削除したい場合、 NCache これもサポートされています。Execute Non Query があり、これを実装したい場合は API に移動できます。実際にこのメソッドに入ってみましょう。他のすべてはまったく同じです。これは、特定の基準に基づいていくつかのアイテムを削除するクエリ文字列です。ここでは、これを ExecuteNonQuery() に渡しています。
//region ExecuteNonQuery
private static void DeleteData()
{
try
{
string query = "DELETE FROM Model_Classes.Product WHERE UnitsInStock > ?";
var queryCommand = new QueryCommand(query);
queryCommand.Parameters.Add("UnitsInStock", 10);
_cache.SearchService.ExecuteNonQuery(queryCommand);
string query1 = "DELETE FROM Model_Classes.Orders WHERE OrderID > ?";
var queryCommand1 = new QueryCommand(query1);
queryCommand1.Parameters.Add("OrderID", 10248);
_cache.SearchService.ExecuteNonQuery(queryCommand1);
}
catch (Exception)
{
throw;
}
}
これについて見てみましょう。ここでも、使用する必要があるパラメーターは 1 つだけであり、それはクエリ コマンドです。
int ExecuteNonQuery(QueryCommand queryCommand);
戻って、もう一度アプリケーションを実行してみましょう。これで完了です。完璧です。400 つのクライアントが接続されています。Enter キーを押す前に、ボックスあたりのカウントが約 500 ~ 100 個であることがわかります。Enter キーを押すとすぐにドロップダウンします。これで完了です。これで、カウントがボックスあたり 100 個または XNUMX 個未満に戻りました。
したがって、任意の基準に基づいて、キャッシュから任意のアイテムを簡単に削除できます。そのために API を何度も呼び出したり、API を削除したり、API を何度も削除したりする必要はありません。
以上が、 NCache API、Execute Reader、Execute Scalar、Execute Non Queries。これらすべてのAPI、実装、コードは既に当社のWebサイトで公開されています。 キャッシュ内の SQL クエリ、このドキュメントがあります。完全な詳細が記載されています。概要はこれでわかります。データを使用したり削除したりする場合は、execute reader、scalarを使用できます。次に、 SQLリファレンスドキュメントサポートされているすべてのSQL構文について説明します。 NCache、サポートされているクエリ形式 NCacheこれらはすべてここで確認できます。このドキュメントにアクセスして、ご自身で確認することができます。
さて、次のステップについてお話しすると、私は皆さんに次のことを強くお勧めします ダウンロード NCache 無料の30日試用版これにより、30日間完全に機能する製品が提供されます。これを行うには、当社のWebサイトalachisoft.comにアクセスし、右上のダウンロードボタンをクリックしてダウンロードしてください。 NCache POC を開始します。
2番目のステップは、 NCache 遊び場。さて、 NCache プレイグラウンドは、私たちが提供するホスト型サービスです。30分間のサンドボックスセッションで、2ノードのキャッシュクラスタを使用して、.NETやJavaのサンプルを編集および実行できます。これを行うには、当社のWebサイトにアクセスし、上部のリソースに移動して、これをクリックします。 遊び場を試してみる こちらをクリックするか、当社の Web サイトにアクセスして右上にある [Try Playground] ボタンをクリックしてください。
最後に、パーソナライズされたスケジュールを設定することを強くお勧めします NCache デモでは、 NCache アーキテクチャ、機能、ユースケースなど、あらゆる情報を入手します。そのためには、当社のWebサイトにアクセスし、「リソース」をクリックして デモを予約フォームにご記入いただければ、あとは当社にお任せください。
さて、皆さん、これはすべて、 NCache SQL クエリ SQL 検索機能、その実装方法。ご質問がございましたら、お気軽にお問い合わせください。このビデオをご覧いただき、誠にありがとうございます。良い一日をお過ごしください。
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。