ObjectLruCache
LruCache (Least Recently Used Cache) és una classe que s'utilitza per mantenir la memòria cau LRU. Pot emmagatzemar un cert nombre de valors i mantenir la mida del contenidor. Quan arriben dades noves, si el contenidor no ha arribat al límit de mida, les dades noves es poden afegir directament al contenidor. Si el contenidor està ple, el contenidor desallotjarà les dades utilitzades menys recentment
El podem utilitzar de les següents maneres:
1
2const util = require('util')
const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms
Entre ells, set() és la interfície per configurar parells clau-valor:
1LruCache.set(String name, Value value);
El paràmetre de nom especifica el valor de la clau que s'ha d'establir i el paràmetre de valor especifica el valor que s'ha d'establir.
LruCache
El get
mètode pot actualitzar les dades de la memòria cau mitjançant una funció de devolució de trucada:
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));
Resultats 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
Quan utilitzeu LruCache específicament, es recomana als desenvolupadors que segueixin les pràctiques recomanades següents:
- Podeu utilitzar LruCache per optimitzar el rendiment de l'aplicació utilitzant un punt de temps específic com a punt fresc durant el processament de dades de fons i establint el temps de caducitat.
- Analitzar les decisions empresarials en els escenaris corresponents. Per exemple, les actualitzacions de dades més freqüents s'han de configurar amb un temps de caducitat més curt, mentre que les dades de la memòria cau que s'actualitzen amb menys freqüència no necessiten establir un temps de caducitat massa curt.
- En diferents escenaris d'ús, tingueu en compte diferents modes d'accés a les dades i utilitzeu instàncies de classe LruCache adequades.
relació hereditària
Constructor
LruCache
Constructor d'objectes LruCache
1
2new LruCache(Integer size,
Integer timeout = 0);
Paràmetres de trucada:
- size: Sencer, mida màxima de la memòria cau
- timeout: Enter, temps de caducitat de l'element, la unitat és ms, si és menor o igual a 0, no caducarà. El valor per defecte és 0.
propietats estàtiques
defaultMaxListeners
Enter, el nombre màxim global predeterminat d'oients
1static Integer LruCache.defaultMaxListeners;
propietats dels membres
size
Enter, consulteu el nombre de valors del contenidor
1readonly Integer LruCache.size;
timeout
Enter, consulta i estableix el temps de caducitat dels elements del contenidor, la unitat és ms, si és menor o igual a 0, no caducarà.
1Integer LruCache.timeout;
onexpire
Esdeveniments de temps d'espera de funció, consulta i vinculació de dades, equivalent a on("expire", func);
1Function LruCache.onexpire;
funció de membre
clear
Esborra les dades del contenidor
1LruCache.clear();
has
Comproveu si les dades amb el valor de clau especificat existeixen al contenidor
1Boolean LruCache.has(String name);
Paràmetres de trucada:
- name: Cadena, especifica el valor de la clau que cal comprovar
Resultats de retorn:
- Boolean, retorna si el valor de la clau existeix
get
Consulteu el valor del valor de clau especificat
1Value LruCache.get(String name);
Paràmetres de trucada:
- name: Cadena, especifiqueu el valor de la clau que s'ha de consultar
Resultats de retorn:
- Value, retorna el valor corresponent al valor de la clau, si no existeix, retorna sense definir
Consulteu el valor del valor de clau especificat. Si no existeix o caduca, truqueu a la funció de devolució de trucada per actualitzar les dades.
1
2Value LruCache.get(String name,
Function updater);
Paràmetres de trucada:
- name: Cadena, especifiqueu el valor de la clau que s'ha de consultar
- updater: Funció, especifiqueu la funció d'actualització
Resultats de retorn:
- Value, retorna el valor corresponent al valor de la clau
set
Estableix una dada de valor de clau. Si el valor de clau no existeix, inseriu-ne una nova.
1
2LruCache.set(String name,
Value value);
Paràmetres de trucada:
- name: Cadena, especifiqueu el valor de la clau que s'ha d'establir
- value: Valor, especifiqueu les dades a establir
Estableix una dada de valor de clau. Si el valor de clau no existeix, inseriu dades noves.
1LruCache.set(Object map);
Paràmetres de trucada:
- map: Objecte, especifica el diccionari de dades clau-valor que s'ha d'establir
remove
Suprimeix tots els valors de la clau especificada
1LruCache.remove(String name);
Paràmetres de trucada:
- name: Cadena, especifica el valor de la clau que s'ha de suprimir
isEmpty
Comproveu si el contenidor està buit
1Boolean LruCache.isEmpty();
Resultats de retorn:
- Boolean, retorna true si no hi ha cap valor al contenidor
on
Enllaceu un controlador d'esdeveniments a l'objecte
1
2Object LruCache.on(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'objecte
1Object LruCache.on(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
addListener
Enllaceu un controlador d'esdeveniments a l'objecte
1
2Object LruCache.addListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'objecte
1Object LruCache.addListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
prependListener
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1
2Object LruCache.prependListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1Object LruCache.prependListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
once
Enllaça un controlador d'esdeveniments únic a l'objecte. El controlador únic només s'activarà una vegada.
1
2Object LruCache.once(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaça un controlador d'esdeveniments únic a l'objecte. El controlador únic només s'activarà una vegada.
1Object LruCache.once(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
prependOnceListener
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1
2Object LruCache.prependOnceListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Enllaceu un controlador d'esdeveniments a l'origen de l'objecte
1Object LruCache.prependOnceListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitzarà com a nom de l'esdeveniment i el valor de l'atribut s'utilitzarà com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
off
Desassignar una funció de la cua de processament d'objectes
1
2Object LruCache.off(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la totes les funcions de la cua de processament d'objectes
1Object LruCache.off(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Desassignar una funció de la cua de processament d'objectes
1Object LruCache.off(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitza com a nom de l'esdeveniment i el valor de l'atribut s'utilitza com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
removeListener
Desassignar una funció de la cua de processament d'objectes
1
2Object LruCache.removeListener(String ev,
Function func);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
- func: Funció, especifiqueu la funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la totes les funcions de la cua de processament d'objectes
1Object LruCache.removeListener(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Desassignar una funció de la cua de processament d'objectes
1Object LruCache.removeListener(Object map);
Paràmetres de trucada:
- map: Objecte, especifica la relació de mapatge d'esdeveniments, el nom de l'atribut de l'objecte s'utilitza com a nom de l'esdeveniment i el valor de l'atribut s'utilitza com a funció de processament d'esdeveniments
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
removeAllListeners
Cancel·la tots els oients de tots els esdeveniments de la cua de processament de l'objecte. Si s'especifica un esdeveniment, elimina tots els oients de l'esdeveniment especificat.
1Object LruCache.removeAllListeners(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
Cancel·la tots els oients de tots els esdeveniments de la cua de processament de l'objecte. Si s'especifica un esdeveniment, elimina tots els oients de l'esdeveniment especificat.
1Object LruCache.removeAllListeners(Array evs = []);
Paràmetres de trucada:
- evs: Matriu, especifiqueu el nom de l'esdeveniment
Resultats de retorn:
- Object, retorna el propi objecte d'esdeveniment per facilitar les trucades en cadena
setMaxListeners
El límit predeterminat del nombre d'oients, només per compatibilitat
1LruCache.setMaxListeners(Integer n);
Paràmetres de trucada:
- n: Enter, especifiqueu el nombre d'esdeveniments
getMaxListeners
Obté el nombre límit predeterminat d'oients, només per compatibilitat
1Integer LruCache.getMaxListeners();
Resultats de retorn:
- Integer, retorna la quantitat límit predeterminada
listeners
Consulteu la matriu d'escolta per a l'esdeveniment especificat de l'objecte
1Array LruCache.listeners(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Array, retorna la matriu d'escolta per a l'esdeveniment especificat
listenerCount
Consulteu el nombre d'oients per a l'esdeveniment especificat de l'objecte
1Integer LruCache.listenerCount(String ev);
Paràmetres de trucada:
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Integer, retorna el nombre d'oients per a l'esdeveniment especificat
Consulteu el nombre d'oients per a l'esdeveniment especificat de l'objecte
1
2Integer LruCache.listenerCount(Value o,
String ev);
Paràmetres de trucada:
- o: Valor, especifica l'objecte de la consulta
- ev: Cadena, especifica el nom de l'esdeveniment
Resultats de retorn:
- Integer, retorna el nombre d'oients per a l'esdeveniment especificat
eventNames
Consulta el nom de l'esdeveniment de l'oient
1Array LruCache.eventNames();
Resultats de retorn:
- Array, retorna una matriu de noms d'esdeveniments
emit
Activa activament un esdeveniment
1
2Boolean LruCache.emit(String ev,
...args);
Paràmetres de trucada:
- ev: cadena, nom de l'esdeveniment
- args: ..., els paràmetres d'esdeveniment es passaran a la funció de processament d'esdeveniments
Resultats de retorn:
- Boolean, retorna l'estat de l'activador de l'esdeveniment, retorna true si hi ha un esdeveniment de resposta, en cas contrari retorna false
toString
Retorna la representació de cadena de l'objecte. En general, es retorna "[Objecte natiu]". L'objecte es pot tornar a implementar segons les seves pròpies característiques.
1String LruCache.toString();
Resultats de retorn:
- String, retorna la representació de cadena de l'objecte
toJSON
Retorna una representació en format JSON de l'objecte, generalment retornant una col·lecció de propietats llegibles definides per l'objecte.
1Value LruCache.toJSON(String key = "");
Paràmetres de trucada:
- key: Corda, no utilitzada
Resultats de retorn:
- Value, retorna un valor que conté JSON serializable