Un caché no sirve de nada sin las operaciones CRUD básicas. Dado que la memoria caché es un almacén de clave-valor, debe add, recuperar y remove datos almacenados en caché todo el tiempo. Por lo tanto, estas CRUD basadas en claves (Crear, Eliminar, Actualizar, Eliminar) u operaciones básicas hacen que su caché sea fácil de acceder y usar.
NCache ha sido ampliamente adoptado para el almacenamiento en caché de datos distribuidos en aplicaciones debido a su escalabilidad lineal y alta disponibilidad. NCache proporciona varias API CRUD para realizar operaciones básicas en el almacenamiento en caché de datos. Veremos con qué facilidad puede utilizar estas operaciones en su aplicación de comercio electrónico utilizando NCache para almacenar datos de uso frecuente.
NCache Detalles Operaciones básicas de caché Datos y claves de caché
Operaciones CRUD básicas
El propósito básico de un caché es actuar como un almacén de datos temporal para su aplicación, por lo que cualquier dato que necesite, haga ping al caché en lugar de hacer un viaje completo a la base de datos. Hagamos un recorrido por las operaciones CRUD básicas que NCache apoya He aquí una breve lista de lo que NCache ofrece:
API | Descripción | Sintaxis |
Añada | Agrega nuevos datos a la memoria caché | Agregar (clave, valor) |
recuadro | Actualiza el valor si la clave ya existe en el caché, o agrega el elemento como nuevo en caso contrario | Insertar (clave, valor) |
Eliminar | Elimina la clave especificada de la memoria caché y devuelve el valor | Eliminar (clave) |
Recibe | Recupera el valor de la clave proporcionada | Obtener la clave) |
Pero espere, simplemente no es una simple tienda de clave-valor. Además, NCache también le permite almacenar en caché objetos personalizados, Objetos JSON, estructuras de datos y realizar operaciones sobre ellos. Por lo tanto, tiene almacenamiento completo y una plataforma de replicación para realizar operaciones CRUD básicas en todo tipo de datos con la máxima flexibilidad utilizando NCache.
NCache Admite operaciones sincrónicas y asincrónicas. Operaciones síncronas son cruciales para las actualizaciones confidenciales en las que debe asegurarse de que la operación que realizó se haya realizado antes de continuar. En otras palabras, tales operaciones son secuenciales. Por otra parte, Operaciones asincrónicas son más flexibles y se realizan en segundo plano mientras el control se envía de vuelta al cliente inmediatamente.
Es importante señalar que, todos NCache Los objetos de cliente SDK y las API son seguros para subprocesos e independientes entre sí. Esto garantiza que la reutilización de instancias de clientes siempre sea segura, incluso entre subprocesos.
Profundicemos un poco en los diferentes tipos de operaciones NCache es compatible para que pueda realizar en sus datos sin problemas. Aquí, le mostraré cómo jugar con operaciones básicas en objetos personalizados.
NCache Detalles Operaciones básicas de caché Datos y claves de caché
Tipos de Operaciones en NCache
NCache permite operaciones CRUD en un solo elemento o en una gran cantidad de elementos. Mientras tanto, los modos de operación admitidos son sincrónicos y asincrónicos. NCache Admite operaciones sincrónicas y asincrónicas. Analicemos diferentes tipos de operaciones con poca profundidad que NCache admite, para que pueda realizar en sus datos sin problemas.
Operaciones atómicas
Todas las operaciones realizadas en un solo par clave-valor se clasifican como operaciones atómicas. Por lo tanto, tales operaciones requieren una llamada de caché por elemento. Suponiendo que tiene una aplicación de comercio electrónico y desea agregar un nuevo producto al stock almacenado en caché, obtenga y actualice su valor, y luego elimínelo del caché con NCache API CRUD.
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); |
Es importante tener en cuenta que no se puede volver a agregar la misma clave si ya existe en el caché. Para eso, puede usar Insertar, que sobrescribe el valor de la clave existente.
NCache Detalles Operaciones básicas de caché Datos y claves de caché
Operaciones masivas
Dado que es posible que deba realizar varias operaciones simultáneamente en su aplicación, NCache le permite realizar operaciones CRUD en una porción de datos en una sola llamada. Estas operaciones están diseñadas para lograr un mejor rendimiento, ya que reducen las llamadas de red al servidor remoto al aprovechar al máximo una sola llamada de caché.
Por ejemplo, si desea agregar, actualizar o eliminar 100 elementos de productos en el caché, puede hacerlo a través de una única llamada masiva a add, actualización or remove estos elementos en lugar de llamar a las API relevantes 100 veces. Veamos cómo puede usar una sola llamada masiva para lograr esto.
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 Detalles Operaciones básicas de caché Datos y claves de caché
Operaciones síncronas
Las operaciones sincrónicas son importantes para las actualizaciones confidenciales en las que debe asegurarse de que la operación que realizó se haya realizado antes de continuar. En otras palabras, tales operaciones son secuenciales. Por ejemplo, usaría operaciones sincrónicas para actualizar los precios de sus acciones antes de una gran venta para asegurarse de que los precios se hayan actualizado correctamente.
Estas operaciones funcionan como una llamada de bloqueo, donde el cliente debe esperar la respuesta del servidor sobre la operación realizada antes de continuar con el procesamiento. Lo que sucede es que, hasta el momento en que se agrega el elemento (o se lanza una excepción), su aplicación espera a que se realice la operación para recuperar el control. Las operaciones CRUD básicas son sincrónicas de forma predeterminada, a menos que se indique lo contrario.
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); |
Operaciones asíncronas
Las operaciones asincrónicas son más flexibles y se realizan en segundo plano mientras el control se envía de vuelta al cliente inmediatamente. Puede usar esta funcionalidad en su aplicación de comercio electrónico al máximo donde se deben realizar operaciones menos críticas, como actualizar la descripción de un producto. El cambio de la información básica no necesariamente necesita ser rastreado, no en alta prioridad de todos modos.
NCache admite múltiples sobrecargas asíncronas para realizar operaciones atómicas. Veamos cómo puedes usar AddAsync
, InsertAsync
y RemoveAsync
API para agregar, actualizar y eliminar los datos de su aplicación de forma asíncrona.
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); |
Conclusión
Como ahora está familiarizado con las operaciones CRUD básicas mediante NCache, puede comenzar a usarlos fácilmente para mejorar el rendimiento de sus aplicaciones distribuidas. Lo que estaba haciendo con su base de datos ahora se puede replicar en su caché de manera simple y el resultado es una experiencia de usuario mejorada debido a un tiempo de respuesta significativamente reducido. Puedes ver el características avanzadas de NCache para un uso extensivo en sus aplicaciones web, microservicios, bibliotecas y aplicaciones de consola. Entonces, descarga NCache ¡ahora con su prueba gratuita para explorar más!