キャッシュは、基本的な CRUD 操作がなければ役に立ちません。 キャッシュはキーと値のストアであるため、次のことが必要です。 加えます, 検索する & 削除します 常にキャッシュされたデータ。 したがって、これらのキーベースの CRUD (作成、削除、更新、削除) または基本的な操作により、キャッシュへのアクセスと使用が容易になります。
NCache アプリケーションの分散データ キャッシュに広く採用されています。 線形スケーラビリティ & 高可用性. NCache データのキャッシュに対して基本的な操作を実行するためのさまざまな CRUD API を提供します。 以下を使用して、これらの操作を e コマース アプリケーションでいかに簡単に使用できるかを確認します。 NCache よく使うデータを保存します。
NCache 詳細 基本的なキャッシュ操作 キーとデータのキャッシュ
基本的なCRUD操作
キャッシュの基本的な目的は、アプリケーションの一時的なデータ ストアのように機能することです。そのため、必要なデータが何であれ、データベースに完全にアクセスするのではなく、キャッシュに対して ping を実行します。 基本的な CRUD 操作を見てみましょう。 NCache サポートします。 以下にその簡単なリストを示します NCache 提供しています:
API | 説明 | 構文 |
Add | 新しいデータをキャッシュに追加します | Add(キー、値) |
インセット | キーがキャッシュにすでに存在する場合は値を更新し、それ以外の場合は項目を新規として追加します | Insert(キー、値) |
削除します | 指定されたキーをキャッシュから削除し、値を返します。 | 削除(キー) |
入手 | 指定されたキーの値を取得します | 取得 (キー) |
しかし、待ってください。これは単純なキーと値のストアではありません。 そのほか、 NCache カスタムオブジェクトをキャッシュすることもできます。 JSONオブジェクト, データ構造 そしてそれらに対して操作を実行します。 したがって、完全なストレージとレプリケーション プラットフォームを使用して、あらゆる種類のデータに対して基本的な CRUD 操作を最大限の柔軟性で実行できます。 NCache.
NCache 同期操作と非同期操作の両方をサポートします。 同期操作 先に進む前に、実行した操作が行われたことを確認する必要がある機密性の高い更新には非常に重要です。 つまり、このような操作はシーケンシャルです。 一方で、 非同期操作 より柔軟で、バックグラウンドで実行され、制御はすぐにクライアントに返されます。
注意することが重要です。 NCache SDK クライアント オブジェクトと API はスレッドセーフであり、互いに独立しています。 これにより、スレッド間であっても、クライアント インスタンスの再利用が常に安全になります。
さまざまな種類の操作をもう少し詳しく見てみましょう NCache データのシームレスな実行をサポートします。 ここでは、カスタム オブジェクトの基本操作を試す方法を説明します。
NCache 詳細 基本的なキャッシュ操作 キーとデータのキャッシュ
の操作の種類 NCache
NCache 単一のアイテムまたは大量のアイテムに対する CRUD 操作を許可します。 一方、サポートされている操作モードは同期と非同期です。 NCache 同期操作と非同期操作の両方をサポートします。 さまざまな種類の操作について少し詳しく説明しましょう。 NCache データをシームレスに実行できるようにサポートします。
不可分操作
単一のキーと値のペアに対して実行されるすべての操作は、アトミック操作として分類されます。 したがって、このような操作では、アイテムごとに XNUMX つのキャッシュ呼び出しが必要です。 電子商取引アプリケーションがあり、新しい製品をキャッシュされた在庫に追加し、その値を取得して更新し、キャッシュから削除するとします。 NCache CRUD API。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Pre-condition: Cache is already connected // Get product from database var product = GetProductFromDB(1001); string key = $"Product:{product.ProductID}"; // Add item in the cache. Add can be replaced with Insert depending on your requirement. CacheItemVersion version = cache.Add(key, product); // Retrieve cached item from the cache var retrievedItem = cache.Get(key); // Update the price of retrieved product retrievedItem.Price = 500; cache.Insert(key, retrievedItem); // Remove item from the cache cache.Remove(key); |
同じキーがすでにキャッシュに存在する場合、同じキーを再度追加することはできないことに注意することが重要です。 そのためには、既存のキーの値を上書きする Insert を使用できます。
NCache 詳細 基本的なキャッシュ操作 キーとデータのキャッシュ
一括操作
アプリケーションで複数の操作を同時に実行する必要がある場合があるため、 NCache を使用すると、XNUMX 回の呼び出しでデータのチャンクに対して CRUD 操作を実行できます。 これらの操作は、XNUMX 回のキャッシュ呼び出しで最大限の処理を実行することでリモート サーバーへのネットワーク呼び出しを減らし、パフォーマンスを向上させるように設計されています。
たとえば、キャッシュ内の 100 個の製品アイテムを追加、更新、または削除したい場合は、次の XNUMX 回の一括呼び出しで実行できます。 加えます, update or 削除します 関連する API を 100 回呼び出す代わりに、これらの項目を呼び出します。 単一の一括呼び出しを使用してこれを実現する方法を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Pre-condition: Cache is already connected // Get products from database Product[] products = FetchProductsFromDB(); IDictionary<string, CacheItem> dictionary = new Dictionary<string, CacheItem>(); foreach (var prod in products) { string key = $"Product:{prod.ProductID}"; var cacheItem = new CacheItem(prod); dictionary.Add(key, cacheItem); } // Inserting items in the cache IDictionary result = cache.InsertBulk(dictionary); // Retrieve items in bulk IDictionary<string, Product> retrievedItems = cache.GetBulk(keys); // Perform business logic here // Remove a chunk of keys from the cache cache.RemoveBulk(keys); |
NCache 詳細 基本的なキャッシュ操作 キーとデータのキャッシュ
同期操作
同期操作は、先に進む前に実行した操作が行われたことを確認する必要がある機密性の高い更新にとって重要です。 つまり、このような操作はシーケンシャルです。 たとえば、大規模なセールの前に同期操作を使用して株式の価格を更新し、価格が正常に更新されていることを確認します。
これらの操作はブロッキング コールとして機能し、クライアントは実行された操作に対するサーバーの応答を待ってから、さらに処理を行う必要があります。 何が起こるかというと、項目が追加される (または例外がスローされる) まで、アプリケーションは操作が実行されるのを待って制御を戻します。 特に明記しない限り、基本的な CRUD 操作はデフォルトで同期的です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Pre-condition: Cache is already connected // Get product from database var product = GetProductFromDB(1001); string key = $"Product:{product.ProductID}"; // Add CacheItem to cache CacheItemVersion version = cache.Add(key, cacheItem); // Retrieve the cached item from the cache CacheItem retrievedItem = cache.GetCacheItem(key); // Update the price of retrieved product product.Price = 500; retrievedItem = new CacheItem(product); cache.Insert(key, retrievedItem); // Remove item from the cache cache.Remove(key); |
非同期操作
非同期操作はより柔軟で、コントロールがクライアントにすぐに送り返される間、バックグラウンドで実行されます。 製品の説明の更新などの重要度の低い操作を実行する必要がある場合は、e コマース アプリケーションでこの機能を最大限に活用できます。 基本情報の変更は、必ずしも追跡する必要はなく、とにかく優先度が高いわけではありません。
NCache アトミック操作を実行するための複数の非同期オーバーロードをサポートします。 使い方を見てみましょう AddAsync
, InsertAsync
, RemoveAsync
アプリケーションのデータを非同期的に追加、更新、削除する API。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Pre-condition: Cache is already connected // Get product from database var product = GetProductFromDB(1001); string key = $"Product:{product.ProductID}"; // Add item in the cache. AddAsync can be replaced with InsertAsync depending on your requirement. Task task = cache.AddAsync(key, product); // Wait before fetching data // Retrieve cached item from the cache var retrievedItem = cache.Get(key); // Update the price of retrieved product retrievedItem.Price = 500; // Add Product object to cache cache.InsertAsync(key, retrievedItem); // Remove item from the cache cache.RemoveAsync(key); |
まとめ
基本的な CRUD 操作に慣れてきたので、 NCacheを使用すると、分散アプリケーションのパフォーマンスを向上させるために簡単に使用を開始できます。 データベースで行っていたことをキャッシュに簡単に複製できるようになり、その結果、応答時間が大幅に短縮され、ユーザー エクスペリエンスが向上します。 ご覧いただけます。 の高度な機能 NCache Web アプリ、マイクロサービス、ライブラリ、コンソール アプリケーションで広範囲に使用できます。それで、ダウンロードしてください NCache 今なら無料トライアルでさらに詳しく調べられます!