La mayoría de las empresas de comercio electrónico florecientes de hoy en día han sufrido en algún momento del pasado un lento tiempo de reacción del sitio web. Esto se debe en parte a un cambio de paradigma en las preferencias de los usuarios, más inclinados a comprar en línea. Por lo tanto, los mecanismos tradicionales no han logrado sostener la afluencia de solicitudes de los clientes.
Con el advenimiento de las soluciones de almacenamiento en caché distribuidas en memoria, linealmente escalables, como NCache, se han producido mejoras significativas en los tiempos de respuesta empresarial. La mayoría de las empresas prósperas tienen una capa de almacenamiento en caché como parte de la arquitectura de su sistema, lo que inicialmente ha dado un auge sustancial a las empresas.
NCache Detalles NCache Cargador de documentos NCache Guía de administración del cargador
¿Qué es un cargador de caché?
Antes de continuar, consideremos un escenario: su negocio planea introducir un descuento de venta flash a medianoche. Ahí es cuando comenzará la afluencia de solicitudes de los usuarios. Entonces, ¿qué tal si carga su caché con los detalles de descuento relevantes antes de que comience oficialmente la venta? De esta manera, una vez que te bombardeen con las solicitudes de los usuarios, estarás equipado con la información relevante para lidiar con ellas.
Soluciones empresariales de almacenamiento en caché como NCache ayudar a superar este retraso en el rendimiento inicial mediante la incorporación de una función especial de almacenamiento en caché: cargador de inicio de caché para precargar su caché. NCache expone un ICacheLoader interfaz que puede implementar y luego implementar en el servidor. Según su lógica, los datos se cargan previamente en la memoria caché como un proceso en segundo plano, al inicio.
El NCache ICacheLoader La interfaz expone los siguientes tres métodos: En eso, tieney Cargar conjunto de datos al iniciar que puede codificar a medida según los requisitos de su negocio:
1 2 3 |
public void Init(IDictionary<string, string> parameters, string cacheName); public object LoadDatasetOnStartup(string dataset); public void Dispose(); |
Características del cargador de caché
Viene con un rico conjunto de características, el NCache cargador de puesta en marcha ayuda a promover una experiencia de usuario mejorada. Se desarrolla teniendo en cuenta los problemas de cara al cliente, mientras se buscan formas de resolverlos.
Para ayudarlo a formar una comprensión más profunda del tema, veamos el núcleo NCache características del cargador a continuación:
Fácilmente configurable
El ICacheLoader
La interfaz es fácil de configurar. Solo tiene que implementarlo y luego implementar su lógica a través del NCache Administrador del lado del servidor. Al habilitar la función de cargador de caché, su código se ejecuta automáticamente al iniciarse el caché.
Conjuntos de datos lógicos
Si está trabajando en un clúster de caché de varios nodos, puede dividir sus datos en conjuntos lógicos y NCache acelera el proceso de carga de datos mediante la asignación de estos grupos a los nodos del clúster de forma rotatoria.
Supongamos que tiene un clúster de dos nodos y su negocio requiere que cargue dos conjuntos de datos: products
y suppliers
. Simplemente inclúyalos en la lógica de su interfaz y especifíquelos conjuntos de datos en tu configuración de caché. NCache comenzará la carga de datos en ambos nodos del clúster en paralelo.
A continuación se muestra un ejemplo de implementación del método. Cargar conjunto de datos al iniciar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
public object LoadDatasetOnStartup(string dataset) { // Create a list of datasets to load at cache startup IList<object> datasetToLoad; switch (dataSet.ToLower()) { // If dataset is "products", fetch products from data source to load in cache case "products": datasetToLoad = FetchProductsFromDataSource(); // Insert fetched product in the cache foreach (var product in datasetToLoad) { string key = $"ProductID:{product.Id}"; cache.Insert(key, product); } break; // If dataset is "suppliers", fetch suppliers from data source to load in cache case "suppliers": // load suppliers from database and add the cache. break; default: // Invalid dataset } // User context is the time at which datasets were loaded in the cache object userContext = DateTime.Now; return userContext; } |
Un servicio de cargador dedicado
NCache utiliza un servicio de carga dedicado en cada uno de los nodos del servidor para ayudar a mejorar la velocidad general de la memoria caché. Este es un crítico NCache característica porque si un gran conjunto de datos necesita carga previa en la memoria caché, el servicio de cargador independiente garantiza que esto no obstaculice el rendimiento normal de la memoria caché.
NCache Detalles Documentos de la interfaz ICacheLoader NCache Guía de implementación de proveedores
Uso NCache Actualizar para volver a cargar datos de caché
Si bien sabemos lo útil que puede ser un caché precargado, existe una posibilidad significativa de que los datos del caché se vuelvan obsoletos si hay actualizaciones periódicas en la fuente de datos del backend. En tales escenarios, los datos que se llenan en el caché no siguen siendo significativos y no cumplen por completo el propósito de un caché precargado.
Continuando con el ejemplo de comercio electrónico de la sección anterior, digamos que en la primera fase, estaba ofreciendo un descuento fijo del 25 % en artículos seleccionados, pero de repente decide aumentar el porcentaje de descuento al 50 % y aplicarlo a todo el stock: ¿qué sucede con los datos de caché existentes? Ahora está desactualizado, lo que significa que necesita un mecanismo para actualizar el conjunto de datos relevante en el caché.
NCache tiene una solución para tales situaciones: permite a sus usuarios actualizar el caché periódicamente con los datos más recientes de la fuente. Puedes hacer esto por cualquiera programar sus conjuntos de datos o por invocando el repaso Bajo demanda.
Si puede predecir cuándo será necesario actualizar su caché, puede implementar el RefreshDataset
método de la interfaz y elija un intervalo de tiempo apropiado que puede ser horas, días, semanas o meses.
A continuación se muestra un ejemplo de implementación del método. Actualizar conjunto de datos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public object RefreshDataset(string dataset, object userContext) { DateTime? lastRefreshTime; switch (dataset.ToLower()) { // If dataset is "products", fetch updated products from data source case "products": lastRefreshTime = userContext as DateTime?; IList<Product> productsToRefresh = FetchUpdatedProducts(lastRefreshTime) as IList<Product>; // Insert updated products in the cache foreach (var product in productsToRefresh) { string key = $"ProductID:{product.Id}"; CacheItem cacheItem = new CacheItem(product); _cache.Insert(key, cacheItem); } break; // If dataset is "supplier", fetch updated suppliers from data source case "suppliers": lastRefreshTime = userContext as DateTime?; // fetch all suppliers updated since ‘lastRefreshTime’ and insert in cache. break; default: // Invalid dataset } // User context is the time at which datasets were refreshed userContext = DateTime.Now; return userContext; } |
Si, por el contrario, no está seguro de cuándo quedarán obsoletos los datos de su caché, puede implementar el Obtener conjuntos de datos para actualizar método en el ICacheLoader
interfaz para encontrar mediante programación los conjuntos de datos que han cambiado y actualizarlos. También puede utilizar el PowerShell Invocar-RefresherDataset cmdlet para actualizar el caché a pedido.
1 |
public IDictionary<string, RefreshPreference> GetDatasetsToRefresh(IDictionary<string, object> userContexts); |
Conclusión
Un cargador de caché ya no es solo una opción: es una característica imprescindible para las empresas que buscan expandir su clientela a nivel mundial porque en esta era competitiva y de ritmo acelerado, la parte frontal de su negocio nunca puede fallar. Entonces, si está buscando una solución de almacenamiento en caché distribuida como NCache para ayudar a hacer crecer su negocio, contáctanos con nosotros y deja que nuestros expertos técnicos te ayuden!