ObjectLruCache
LruCache (Least Recently Used Cache) è una classe utilizzata per mantenere la cache LRU. Può memorizzare un certo numero di valori e mantenere la dimensione del contenitore. Quando arrivano nuovi dati, se il contenitore non ha raggiunto il limite di dimensione, i nuovi dati possono essere aggiunti direttamente al contenitore. Se il contenitore è pieno, eliminerà i dati utilizzati meno di recente
Possiamo usarlo nei seguenti modi:
1
2const util = require('util')
const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms
Tra questi, set() è l'interfaccia per l'impostazione delle coppie chiave-valore:
1LruCache.set(String name, Value value);
Il parametro name specifica il valore della chiave da impostare e il parametro value specifica il valore da impostare.
LruCache
Il get
metodo può aggiornare i dati memorizzati nella cache utilizzando una funzione di callback:
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));
Risultati di:
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
Quando si utilizza LruCache in modo specifico, si consiglia agli sviluppatori di seguire le seguenti best practice:
- Puoi utilizzare LruCache per ottimizzare le prestazioni dell'applicazione utilizzando un punto temporale specifico come nuovo punto durante l'elaborazione dei dati back-end e impostando il tempo di scadenza.
- Analizzare le decisioni aziendali in scenari corrispondenti. Ad esempio, gli aggiornamenti dei dati più frequenti devono essere configurati con una scadenza più breve, mentre per i dati memorizzati nella cache aggiornati meno frequentemente non è necessario impostare una scadenza troppo breve.
- In diversi scenari di utilizzo, considera diverse modalità di accesso ai dati e utilizza le istanze della classe LruCache appropriate.
rapporto ereditario
Costruttore
LruCache
Costruttore di oggetti LruCache
1
2new LruCache(Integer size,
Integer timeout = 0);
Parametri di chiamata:
- size: numero intero, dimensione massima della cache
- timeout: numero intero, tempo di scadenza dell'elemento, l'unità è ms, se è inferiore o uguale a 0, non scadrà. Il valore predefinito è 0.
proprietà statiche
defaultMaxListeners
Intero, il numero massimo globale predefinito di ascoltatori
1static Integer LruCache.defaultMaxListeners;
proprietà dei membri
size
Intero, interroga il numero di valori nel contenitore
1readonly Integer LruCache.size;
timeout
Intero, interroga e imposta il tempo di scadenza degli elementi nel contenitore, l'unità è ms, se è inferiore o uguale a 0, non scadrà.
1Integer LruCache.timeout;
onexpire
Funzione, interroga e associa eventi di timeout dei dati, equivalente a on("expire", func);
1Function LruCache.onexpire;
funzione membro
clear
Cancella i dati del contenitore
1LruCache.clear();
has
Controlla se i dati con il valore della chiave specificato esistono nel contenitore
1Boolean LruCache.has(String name);
Parametri di chiamata:
- name: String, specifica il valore della chiave da verificare
Risultati restituiti:
- Boolean, restituisce se il valore della chiave esiste
get
Interrogare il valore del valore chiave specificato
1Value LruCache.get(String name);
Parametri di chiamata:
- name: String, specifica il valore della chiave da interrogare
Risultati restituiti:
- Value, restituisce il valore corrispondente al valore della chiave, se non esiste, restituisce undefinito
Interroga il valore del valore della chiave specificato. Se non esiste o scade, chiama la funzione di callback per aggiornare i dati.
1
2Value LruCache.get(String name,
Function updater);
Parametri di chiamata:
- name: String, specifica il valore della chiave da interrogare
- updater: Funzione, specifica la funzione di aggiornamento
Risultati restituiti:
- Value, restituisce il valore corrispondente al valore della chiave
set
Imposta i dati del valore chiave. Se il valore della chiave non esiste, inserisci un nuovo dato.
1
2LruCache.set(String name,
Value value);
Parametri di chiamata:
- name: String, specifica il valore della chiave da impostare
- value: Valore, specificare i dati da impostare
Imposta i dati del valore chiave. Se il valore chiave non esiste, inserisci nuovi dati.
1LruCache.set(Object map);
Parametri di chiamata:
- map: Oggetto, specifica il dizionario dati chiave-valore da impostare
remove
Elimina tutti i valori della chiave specificata
1LruCache.remove(String name);
Parametri di chiamata:
- name: String, specifica il valore della chiave da eliminare
isEmpty
Controlla se il contenitore è vuoto
1Boolean LruCache.isEmpty();
Risultati restituiti:
- Boolean, restituisce true se non è presente alcun valore nel contenitore
on
Associa un gestore eventi all'oggetto
1
2Object LruCache.on(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object LruCache.on(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
addListener
Associa un gestore eventi all'oggetto
1
2Object LruCache.addListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object LruCache.addListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object LruCache.prependListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object LruCache.prependListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
once
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1
2Object LruCache.once(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1Object LruCache.once(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependOnceListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object LruCache.prependOnceListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object LruCache.prependOnceListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
off
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object LruCache.off(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object LruCache.off(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object LruCache.off(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeListener
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object LruCache.removeListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object LruCache.removeListener(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object LruCache.removeListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeAllListeners
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object LruCache.removeAllListeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object LruCache.removeAllListeners(Array evs = []);
Parametri di chiamata:
- evs: Array, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
setMaxListeners
Il limite predefinito sul numero di ascoltatori, solo per compatibilità
1LruCache.setMaxListeners(Integer n);
Parametri di chiamata:
- n: Numero intero, specifica il numero di eventi
getMaxListeners
Ottiene il numero limite predefinito di ascoltatori, solo per compatibilità
1Integer LruCache.getMaxListeners();
Risultati restituiti:
- Integer, restituisce la quantità limite predefinita
listeners
Interroga l'array del listener per l'evento specificato dell'oggetto
1Array LruCache.listeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Array, restituisce l'array del listener per l'evento specificato
listenerCount
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1Integer LruCache.listenerCount(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1
2Integer LruCache.listenerCount(Value o,
String ev);
Parametri di chiamata:
- o: Valore, specifica l'oggetto della query
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
eventNames
Interroga il nome dell'evento del listener
1Array LruCache.eventNames();
Risultati restituiti:
- Array, restituisce una matrice di nomi di eventi
emit
Attiva attivamente un evento
1
2Boolean LruCache.emit(String ev,
...args);
Parametri di chiamata:
- ev: stringa, nome dell'evento
- args: ..., i parametri dell'evento verranno passati alla funzione di elaborazione degli eventi
Risultati restituiti:
- Boolean, restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String LruCache.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value LruCache.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile