ObjectLruCache
LruCache (caché menos usada recentemente) é unha clase que se usa para manter a caché LRU. Pode almacenar un certo número de valores e manter o tamaño do recipiente. Cando chegan novos datos, se o contedor non alcanzou o límite de tamaño, os novos datos pódense engadir directamente ao contedor. Se o contedor está cheo, o contedor expulsará os datos usados menos recentemente
Podemos usalo das seguintes formas:
1
2const util = require('util')
const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms
Entre eles, set() é a interface para establecer pares clave-valor:
1LruCache.set(String name, Value value);
O parámetro nome especifica o valor clave que se vai definir e o parámetro value especifica o valor que se vai definir.
LruCache
O get
método pode actualizar os datos da caché usando unha función de devolución de chamada:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15var c = new util.LruCache(10, 1000); // create a LruCache instance with size 10 and timeout 1000ms
function get_data(name) {
// return data from backend
// ...
var data = {
'name': name,
'value': Math.random()
};
console.log('update data: ' + JSON.stringify(data)); // output infomation to console
return data;
}
console.log(c.get('a', get_data));
console.log(c.get('a', get_data));
Resultados de:
1
2
3update data: {"name":"a","value":0.4019124971556616}
{"name":"a","value":0.4019124971556616} // updater will be called to update cache data when cache is empty
{"name":"a","value":0.4019124971556616} // updater will not be called when cache is not empty
Cando use LruCache específicamente, recoméndase aos desenvolvedores que sigan as seguintes mellores prácticas:
- Podes usar LruCache para optimizar o rendemento da aplicación usando un punto de tempo específico como punto novo durante o procesamento de datos de fondo e establecendo o tempo de caducidade.
- Analizar as decisións empresariais baixo os escenarios correspondentes. Por exemplo, as actualizacións de datos máis frecuentes deben configurarse cun tempo de caducidade máis curto, mentres que os datos almacenados en caché que se actualizan con menos frecuencia non precisan establecer un tempo de caducidade demasiado curto.
- En diferentes escenarios de uso, considere diferentes modos de acceso a datos e use instancias de clase LruCache adecuadas.
relación de herdanza
Construtor
LruCache
Construtor de obxectos LruCache
1
2new LruCache(Integer size,
Integer timeout = 0);
Parámetros de chamada:
- size: Número enteiro, tamaño máximo da caché
- timeout: Número enteiro, tempo de caducidade do elemento, a unidade é ms, se é menor ou igual a 0, non caducará. O valor predeterminado é 0.
propiedades estáticas
defaultMaxListeners
Enteiro, o número máximo global predeterminado de oíntes
1static Integer LruCache.defaultMaxListeners;
propiedades dos membros
size
Enteiro, consulta o número de valores no contedor
1readonly Integer LruCache.size;
timeout
Enteiro, consulta e establece o tempo de caducidade dos elementos no contedor, a unidade é ms, se é menor ou igual a 0, non caducará.
1Integer LruCache.timeout;
onexpire
Eventos de tempo de espera de función, consulta e vinculación de datos, equivalentes a on("expire", func);
1Function LruCache.onexpire;
función de membro
clear
Borrar os datos do contedor
1LruCache.clear();
has
Comproba se os datos co valor de chave especificado existen no contedor
1Boolean LruCache.has(String name);
Parámetros de chamada:
- name: Cadea, especifica o valor da clave que se vai comprobar
Resultados de devolución:
- Boolean, devolve se o valor da chave existe
get
Consulta o valor do valor da chave especificado
1Value LruCache.get(String name);
Parámetros de chamada:
- name: Cadea, especifique o valor da clave que se vai consultar
Resultados de devolución:
- Value, devolve o valor correspondente ao valor da chave, se non existe, devolve indefinido
Consulta o valor do valor da chave especificado. Se non existe ou caduca, chama á función de devolución de chamada para actualizar os datos.
1
2Value LruCache.get(String name,
Function updater);
Parámetros de chamada:
- name: Cadea, especifique o valor da clave que se vai consultar
- updater: Función, especifique a función de actualización
Resultados de devolución:
- Value, devolve o valor correspondente ao valor da chave
set
Establece un dato de valor clave. Se o valor de clave non existe, insire un novo dato.
1
2LruCache.set(String name,
Value value);
Parámetros de chamada:
- name: Cadea, especifique o valor da clave que se quere establecer
- value: Valor, especifique os datos a definir
Establece un dato de valor clave. Se o valor de clave non existe, insire novos datos.
1LruCache.set(Object map);
Parámetros de chamada:
- map: Obxecto, especifica o dicionario de datos clave-valor que se vai definir
remove
Elimina todos os valores da clave especificada
1LruCache.remove(String name);
Parámetros de chamada:
- name: Cadea, especifica o valor da clave que se vai eliminar
isEmpty
Comproba se o recipiente está baleiro
1Boolean LruCache.isEmpty();
Resultados de devolución:
- Boolean, devolve verdadeiro se non hai ningún valor no contedor
on
Vincular un controlador de eventos ao obxecto
1
2Object LruCache.on(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object LruCache.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
addListener
Vincular un controlador de eventos ao obxecto
1
2Object LruCache.addListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object LruCache.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object LruCache.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object LruCache.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
once
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1
2Object LruCache.once(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1Object LruCache.once(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependOnceListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object LruCache.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object LruCache.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
off
Desasignar unha función da cola de procesamento de obxectos
1
2Object LruCache.off(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object LruCache.off(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object LruCache.off(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeListener
Desasignar unha función da cola de procesamento de obxectos
1
2Object LruCache.removeListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todas as funcións da cola de procesamento de obxectos
1Object LruCache.removeListener(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object LruCache.removeListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeAllListeners
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object LruCache.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object LruCache.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, especifique o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
setMaxListeners
O límite predeterminado no número de oíntes, só para compatibilidade
1LruCache.setMaxListeners(Integer n);
Parámetros de chamada:
- n: Número enteiro, especifique o número de eventos
getMaxListeners
Obtén o número límite predeterminado de oíntes, só para compatibilidade
1Integer LruCache.getMaxListeners();
Resultados de devolución:
- Integer, devolve a cantidade límite predeterminada
listeners
Consulta a matriz de escoita para o evento especificado do obxecto
1Array LruCache.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Array, devolve a matriz de escoita para o evento especificado
listenerCount
Consulta o número de oíntes para o evento especificado do obxecto
1Integer LruCache.listenerCount(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
Consulta o número de oíntes para o evento especificado do obxecto
1
2Integer LruCache.listenerCount(Value o,
String ev);
Parámetros de chamada:
- o: Valor, especifica o obxecto da consulta
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array LruCache.eventNames();
Resultados de devolución:
- Array, devolve unha matriz de nomes de eventos
emit
Activa un evento de forma activa
1
2Boolean LruCache.emit(String ev,
...args);
Parámetros de chamada:
- ev: Cadea, nome do evento
- args: ..., os parámetros do evento pasaranse á función de procesamento de eventos
Resultados de devolución:
- Boolean, devolve o estado de activación do evento, devolve verdadeiro se hai un evento de resposta, se non, devolve falso
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String LruCache.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value LruCache.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable