기본 CRUD 작업이 없으면 캐시는 쓸모가 없습니다. 캐시는 키-값 저장소이므로 다음을 수행해야 합니다. 더하다, 검색 와 제거 항상 캐시된 데이터. 따라서 이러한 키 기반 CRUD(생성, 제거, 업데이트, 삭제) 또는 기본 작업을 통해 캐시에 쉽게 액세스하고 사용할 수 있습니다.
NCache 때문에 응용 프로그램의 분산 데이터 캐싱에 널리 채택되었습니다. 선형 확장성 와 고 가용성. NCache 캐싱 데이터에 대한 기본적인 작업을 수행하기 위한 다양한 CRUD API를 제공합니다. 다음을 사용하여 전자 상거래 애플리케이션에서 이러한 작업을 얼마나 쉽게 사용할 수 있는지 확인할 것입니다. NCache 자주 사용하는 데이터를 저장합니다.
NCache 세부 정보 기본 캐시 작업 캐시 키 및 데이터
기본 CRUD 작업
캐시의 기본 목적은 애플리케이션을 위한 임시 데이터 저장소처럼 작동하는 것이므로 필요한 데이터가 무엇이든 데이터베이스로 전체 이동하는 대신 캐시를 ping합니다. 기본 CRUD 작업을 살펴보겠습니다. NCache 지원합니다. 다음은 간략한 목록입니다. NCache 제공 :
API | 상품 설명 | 통사론 |
추가 | 캐시에 새 데이터 추가 | 추가(키, 값) |
끼워 넣다 | 키가 이미 캐시에 있으면 값을 업데이트하고, 그렇지 않으면 새 항목으로 추가합니다. | 삽입(키, 값) |
제거 | 캐시에서 지정된 키를 제거하고 값을 반환합니다. | 제거(키) |
돈을 받아가세요 | 제공된 키의 값을 검색합니다. | 가져오기(키) |
그러나 잠깐, 단순한 키-값 저장소가 아닙니다. 게다가, NCache 또한 사용자 지정 개체를 캐시할 수 있습니다. JSON 객체, 데이터 구조 작업을 수행합니다. 따라서 다음을 사용하여 최대한의 유연성으로 모든 종류의 데이터에 대해 기본 CRUD 작업을 수행할 수 있는 완전한 스토리지 및 복제 플랫폼을 갖게 됩니다. NCache.
NCache 동기 및 비동기 작업을 모두 지원합니다. 동기 작업 더 진행하기 전에 수행한 작업이 수행되었는지 확인해야 하는 민감한 업데이트의 경우 중요합니다. 즉, 이러한 작업은 순차적입니다. 반면에, 비동기 작업 제어가 즉시 클라이언트로 다시 전송되는 동안 보다 유연하고 백그라운드에서 수행됩니다.
모든 NCache SDK 클라이언트 개체와 API는 스레드로부터 안전하며 서로 독립적입니다. 이렇게 하면 스레드 간에도 클라이언트 인스턴스를 재사용하는 것이 항상 안전합니다.
다양한 종류의 작업에 대해 조금 더 자세히 살펴보겠습니다. NCache 데이터를 원활하게 수행할 수 있도록 지원합니다. 여기에서는 사용자 지정 개체에 대한 기본 작업을 수행하는 방법을 보여 드리겠습니다.
NCache 세부 정보 기본 캐시 작업 캐시 키 및 데이터
작업 유형 NCache
NCache 단일 항목 또는 대량 항목에 대한 CRUD 작업을 허용합니다. 한편, 지원되는 작동 모드는 동기 및 비동기입니다. NCache 동기 및 비동기 작업을 모두 지원합니다. 다양한 유형의 작업에 대해 조금 더 자세히 살펴보겠습니다. NCache 데이터를 원활하게 수행할 수 있도록 지원합니다.
원자적 작업
단일 키-값 쌍에서 수행되는 모든 작업은 원자적 작업으로 분류됩니다. 따라서 이러한 작업에는 항목당 하나의 캐시 호출이 필요합니다. 전자 상거래 응용 프로그램이 있고 캐시된 재고에 새 제품을 추가하려는 경우 해당 값을 가져와 업데이트한 다음 다음을 사용하여 캐시에서 제거합니다. 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 한 번의 호출로 데이터 청크에 대한 CRUD 작업을 수행할 수 있습니다. 이러한 작업은 단일 캐시 호출에서 최대한의 작업을 수행하여 원격 서버에 대한 네트워크 호출을 줄임으로써 더 나은 성능을 달성하도록 설계되었습니다.
예를 들어 캐시에서 100개의 제품 항목을 추가, 업데이트 또는 삭제하려는 경우 단일 대량 호출을 통해 수행할 수 있습니다. 더하다, 최신 정보 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 세부 정보 기본 캐시 작업 캐시 키 및 데이터
동기 작업
동기 작업은 더 진행하기 전에 수행한 작업이 수행되었는지 확인해야 하는 민감한 업데이트에 중요합니다. 즉, 이러한 작업은 순차적입니다. 예를 들어, 가격이 성공적으로 업데이트되었는지 확인하기 위해 대규모 판매 전에 주식의 가격을 업데이트하는 동기 작업을 사용할 수 있습니다.
이러한 작업은 차단 호출로 작동하며, 여기서 클라이언트는 추가 처리 전에 수행된 작업에 대한 서버 응답을 기다려야 합니다. 항목이 추가될 때까지(또는 예외가 throw될 때까지) 애플리케이션이 제어를 다시 가져오기 위해 작업이 수행되기를 기다립니다. 달리 명시되지 않은 경우 기본 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); |
비동기 작업
비동기 작업은 제어가 즉시 클라이언트로 다시 전송되는 동안 더 유연하고 백그라운드에서 수행됩니다. 제품 설명 업데이트와 같은 덜 중요한 작업을 수행해야 하는 전자 상거래 애플리케이션에서 이 기능을 최대한 사용할 수 있습니다. 기본 정보를 변경하는 것이 반드시 높은 우선 순위가 아니라 추적할 필요는 없습니다.
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 웹 앱, 마이크로서비스, 라이브러리 및 콘솔 애플리케이션에서 광범위하게 사용할 수 있습니다. 그러니 다운로드하세요 NCache 이제 무료 평가판을 통해 더 많은 것을 탐색해 보세요!