SQLクエリを使用してキャッシュ内のグループデータを削除する
SQLでの検索と同様に、 NCache には、クエリで指定された条件を使用して結果セットを削除するオブジェクト クエリが用意されています。 指定した基準に従ってキャッシュ内のデータを削除するには、 NCache SQL クエリの拡張機能を提供します。
特別なキーワード $Group$
検討中の条件がグループを使用することを指定するために使用されます。検索条件を含む SQL クエリは次のように実行されます。 ExecuteNonQuery
.
ExecuteNonQuery
サーバー側でクエリを処理し、結果を表形式でクライアントに送信します。 ICacheReader
インスタンスのタイプ。
SQL クエリを使用してキャッシュ内のグループ データを削除するための前提条件
SQL クエリを使用してキャッシュ内のグループ データを削除する機能を使用する前に、次の要件が満たされていることを確認してください。
グループの削除
特定の条件を指定すると、SQL クエリを使用してキャッシュに存在するグループを削除できます。 次の例では、SQL 削除クエリを使用して、特定のグループに対するすべてのデータを削除します。
// Preconditions: Cache is already connected
// A user wants to remove the West Coast Customers Group as this region is no longer supported in their store
// Custom class is query indexed through the NCache Management Center or config.ncconf
// Create SQL Query with the specified criteria
// Make sure to use the Fully Qualified Name (FQN)
string query = "DELETE FROM Alachisoft.NCache.Samples.Data.Customer WHERE $Group$ = ?";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
// Providing parameters for query
queryCommand.Parameters.Add("$Group$", "West Coast Customers");
// 'rowsAffected' number of items removed from cache
int rowsAffected = cache.SearchService.ExecuteNonQuery(queryCommand);
if (rowsAffected==0)
Console.WriteLine($"No West Coast Customers removed");
// Pre-conditions: Cache is already connected
// A user wants to remove the West Coast Customers Group as this region is no longer supported in their store
// Custom class is query indexed through the NCache Management Center or config.ncconf
// Create SQL Query with the specified criteria
// Use the Fully Qualified Name (FQN) of your custom class
String query = "DELETE FROM com.alachisoft.ncache.samples.Customer WHERE $Group$ = ?";
// Use QueryCommand for query execution
QueryCommand queryCommand = new QueryCommand(query);
// Providing parameters for query
queryCommand.getParameters().put("$Group$", "West Coast Customers");
// 'rowsAffected' number of items removed from cache
int rowsAffected = cache.getSearchService().executeNonQuery(queryCommand);
if (rowsAffected == 0) {
System.out.println("No west coast customers removed");
} else {
System.out.println(rowsAffected + " West Coast Customers removed");
}
// This is an async method
// Preconditions: Cache is already connected
// Custom class is query indexed through the the NCache Management Center or config.ncconf
// Create SQL Query with the specified criteria
// Make sure to use the Fully Qualified Name (FQN)
var query = "DELETE FROM FQN.Customer WHERE $Group$ = ?";
// Use QueryCommand for query execution
var queryCommand = new ncache.QueryCommand(query);
var parameters = this.map.set("$Group","Important Customers");
queryCommand.setParameters(parameters);
var searchService = await this.cache.getSearchService();
// rowsAffected is the number of items removed from cache
var rowsAffected = await searchService.executeReader(queryCommand);
# Pre-conditions: Cache is already connected
# Custom class is query indexed through the the NCache Management Center or config.ncconf
# Create SQL Query with the specified criteria
# Make sure to use the Fully Qualified Name(FQN)
query = "DELETE FROM FQN.Customer WHERE $Group$ = ?"
# Use QueryCommand for query execution
query_command = ncache.QueryCommand(query)
parameters = {"$Group": "Important Customers"}
query_command.set_parameters(parameters)
search_service = cache.get_search_service()
# rows_affected is the number of items removed from cache
rows_affected = search_service.execute_non_query(query_command)
Note
操作がフェイルセーフであることを保証するために、で説明されているように、アプリケーション内の潜在的な例外を処理することをお勧めします。 失敗の処理.
オブジェクトクエリの詳細については、以下を参照してください。 のSQLリファレンス NCache のセクションから無料でダウンロードできます。
その他のリソース
NCache グループのサンプルアプリケーションを提供します GitHubの.
も参照してください
。ネット: Alachisoft.NCache。クライアント 名前空間
Java: comの。alachisoft.ncache。クライアント 名前空間
Node.js: キャッシュ とに提供されます。
Python: ncache。クライアント とに提供されます。