En un entorno de caché distribuida, puede haber escenarios en los que ciertos datos deben estar presentes en el caché para que la aplicación los use inmediatamente después de que comience a ejecutarse. Inicialmente, cuando se inicia un caché, no contiene ningún dato que pueda ocasionar costosos viajes a la fuente de datos para obtener datos, lo que afecta el rendimiento de la aplicación. Por lo tanto, es importante que la memoria caché utilizada para almacenar datos esté precargada con algunos datos de referencia antes de que la aplicación comience a usarla.
Para este propósito, NCache proporciona una Cargador de inicio de caché característica que permite a los usuarios implementar una interfaz para precargar los datos de referencia deseados en el caché tan pronto como se inicia el caché. Como resultado, la aplicación del usuario no tendrá errores de caché y menos viajes de fuente de datos, por lo tanto, logrará un rendimiento más rápido.
Componentes del cargador de inicio de caché
Cada vez que se inicia el caché, Cache Startup Loader obtiene automáticamente datos de la fuente de datos para que el usuario los use de antemano. Por tanto, antes de pasar al funcionamiento de Cache Loader, el usuario debe conocer algunas de sus características que se explican a continuación.
- Conjuntos de datos: Un conjunto de datos es una forma en que el usuario puede agrupar diferentes tipos de datos para que puedan cargarlos o actualizarlos por separado en diferentes intervalos o eventos para lograr el paralelismo.
- Servicio de cargador: Es responsable de administrar las tareas y cargar datos desde la fuente de datos en el caché al inicio.
- Reintentos del cargador de caché: En caso de que una operación falle mientras se carga el caché, esas operaciones fallidas se pueden realizar nuevamente antes de pasar a la siguiente a través de la opción de número de reintentos que se configura a través de NCache Administrador web.
NCache Detalles Cargador de caché y documentos de actualización NCache Docs
¿Cómo implementar el cargador de inicio de caché?
Para habilitar Cache Startup Loader, el usuario, en primer lugar, debe implementar el ICacheLoader de la interfaz del. NCache utiliza esta interfaz con los métodos que se explican a continuación para cargar datos desde la fuente de datos en la memoria caché al iniciar la memoria caché.
Inicializar cargador de inicio de caché
En eso Se llama al método Cache Startup para pasar los parámetros configurados de modo que el usuario pueda usarlo en consecuencia para inicializar su caché y la fuente de datos. Simplemente configure la conexión abriendo una conexión de base de datos como SQL e inicialice un caché con el nombre dado como la implementación de ejemplo a continuación para .NET y Java.
1 2 3 4 5 6 7 8 9 |
public void Init(IDictionary<string, string> parameters, string cacheName) { cache = CacheManager.GetCache(cacheName); connectionString = parameters.ContainsKey("ConnectionString") ? parameters["ConnectionString"] : null; if (connectionString != null) { connection = new SqlConnection(connectionString); } } |
1 2 3 4 5 6 7 8 |
public void init(Map<String, String> parameters, String cacheName) { cache = CacheManager.getCache(cacheName); connectionString = parameters.containsKey("ConnectionString") ? parameters.get("ConnectionString") : null; if (connectionString != null) { connection = DriverManager.getConnection(connectionString); } } |
Cargar datos al iniciar la caché
La siguiente implementación de ejemplo para .NET y Java, del método Cargar conjunto de datos al iniciar of ICacheLoader
La interfaz obtiene los datos de la fuente de datos y los agrega a la memoria caché al iniciar la memoria caché para precargar la memoria caché. Devuelve un contexto de usuario que contiene la información sobre los datos cargados en la memoria caché.
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 |
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; // You can add more cases for different datasets as per requirement and fetch them from the data source default: // Invalid dataset } // User context is the time at which datasets were loaded in the cache object userContext = DateTime.Now; return userContext; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public Object loadDatasetsOnStartup(String dataset) { // Create a list of datasets to load at cache startup List<Object> datasetToLoad; switch (dataset.toLowerCase()) { // If dataset is "products", fetch products from data source and add in cache case "products": datasetToLoad = fetchProductsFromDataSource(); // Insert fetched product in the cache for (var product : datasetToLoad) { string key = "ProductID:" + product.productID; cache.insert(key, product); } break; // You can add more cases for different datasets as per the requirement and fetch them from data source default: // Invalid dataset } // User context is the time at which datasets were loaded in the cache Object userContext = LocalDateTime.now(); return userContext; } |
Al igual que la carga previa de datos es algo importante, puede haber una gran posibilidad de que los datos cargados se vuelvan obsoletos. Los datos ya cargados en la memoria caché pueden modificarse debido a cualquier cambio que se produzca en la fuente de datos, por lo que los datos precargados pueden volverse obsoletos. Para mantener actualizados estos datos cargados, NCache proporciona una característica de Actualización de caché que utiliza la implementación de Cache Loader para mantener los datos cargados actualizados y sincronizados con la fuente de datos.
NCache Detalles Configurar cargador y actualización de caché Documentos de actualización de caché
Configurar Cache Loader a través de NCache Web Manager
Una vez que el usuario ha implementado Cache Startup Loader, puede configurarlo a través de NCache Web Manager. A continuación se muestra cómo se puede hacer.
¡Conclusión!
Como se puede ver, NCache proporciona a sus usuarios una función poderosa Cache Startup Loader para precargar datos en el caché en lugar de un seguimiento manual. Entonces, agárrate NCache ¡y adquiera todas sus increíbles funciones para lograr un rendimiento y una escalabilidad de las aplicaciones más rápidos!