ObjetLruCache
LruCache (Least Récemment Utilisé Cache) est une classe utilisée pour maintenir le cache LRU. Il peut stocker un certain nombre de valeurs et conserver la taille du conteneur. Lorsque de nouvelles données arrivent, si le conteneur n'a pas atteint la taille limite, les nouvelles données peuvent être ajoutées directement au conteneur. Si le conteneur est plein, le conteneur expulsera les données les moins récemment utilisées
Nous pouvons l'utiliser des manières suivantes :
1
2const util = require('util')
const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms
Parmi eux, set() est l'interface permettant de définir des paires clé-valeur :
1LruCache.set(String name, Value value);
Le paramètre name spécifie la valeur de clé à définir et le paramètre value spécifie la valeur à définir.
LruCache
La get
méthode peut mettre à jour les données mises en cache à l'aide d'une fonction de rappel :
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));
Résultats du :
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
Lors de l'utilisation spécifique de LruCache, il est recommandé aux développeurs de suivre les bonnes pratiques suivantes :
- Vous pouvez utiliser LruCache pour optimiser les performances des applications en utilisant un point temporel spécifique comme nouveau point lors du traitement des données back-end et en définissant le délai d'expiration.
- Analysez les décisions commerciales dans les scénarios correspondants. Par exemple, les mises à jour de données plus fréquentes doivent être configurées avec un délai d'expiration plus court, tandis que les données mises en cache qui sont mises à jour moins fréquemment n'ont pas besoin de définir un délai d'expiration trop court.
- Dans différents scénarios d'utilisation, envisagez différents modes d'accès aux données et utilisez les instances de classe LruCache appropriées.
relation d'héritage
Constructeur
LruCache
Constructeur d'objet LruCache
1
2new LruCache(Integer size,
Integer timeout = 0);
Paramètres d'appel :
- size: Entier, taille maximale du cache
- timeout: Entier, délai d'expiration de l'élément, l'unité est ms, s'il est inférieur ou égal à 0, il n'expirera pas. La valeur par défaut est 0.
propriétés statiques
defaultMaxListeners
Entier, le nombre maximum global d'auditeurs par défaut
1static Integer LruCache.defaultMaxListeners;
propriétés des membres
size
Entier, interrogez le nombre de valeurs dans le conteneur
1readonly Integer LruCache.size;
timeout
Entier, interrogez et définissez le délai d'expiration des éléments dans le conteneur, l'unité est ms, si elle est inférieure ou égale à 0, elle n'expirera pas.
1Integer LruCache.timeout;
onexpire
Événements de délai d'attente de données de fonction, d'interrogation et de liaison, équivalents à on("expire", func);
1Function LruCache.onexpire;
fonction membre
clear
Effacer les données du conteneur
1LruCache.clear();
has
Vérifiez si les données avec la valeur de clé spécifiée existent dans le conteneur
1Boolean LruCache.has(String name);
Paramètres d'appel :
- name: String, spécifie la valeur clé à vérifier
Résultats de retour :
- Boolean, renvoie si la valeur clé existe
get
Interroger la valeur de la valeur de clé spécifiée
1Value LruCache.get(String name);
Paramètres d'appel :
- name: String, spécifiez la valeur clé à interroger
Résultats de retour :
- Value, renvoie la valeur correspondant à la valeur clé, si elle n'existe pas, renvoie undéfini
Interrogez la valeur de la valeur de clé spécifiée. Si elle n'existe pas ou expire, appelez la fonction de rappel pour mettre à jour les données.
1
2Value LruCache.get(String name,
Function updater);
Paramètres d'appel :
- name: String, spécifiez la valeur clé à interroger
- updater: Fonction, spécifiez la fonction de mise à jour
Résultats de retour :
- Value, renvoie la valeur correspondant à la valeur clé
set
Définir une donnée de valeur clé. Si la valeur clé n'existe pas, insérez une nouvelle donnée.
1
2LruCache.set(String name,
Value value);
Paramètres d'appel :
- name: String, spécifiez la valeur clé à définir
- value: Valeur, précisez les données à paramétrer
Définir une donnée de valeur clé. Si la valeur clé n'existe pas, insérez de nouvelles données.
1LruCache.set(Object map);
Paramètres d'appel :
- map: Objet, spécifie le dictionnaire de données clé-valeur à définir
remove
Supprimer toutes les valeurs de la clé spécifiée
1LruCache.remove(String name);
Paramètres d'appel :
- name: String, spécifie la valeur clé à supprimer
isEmpty
Vérifiez si le conteneur est vide
1Boolean LruCache.isEmpty();
Résultats de retour :
- Boolean, renvoie vrai s'il n'y a aucune valeur dans le conteneur
on
Lier un gestionnaire d'événements à l'objet
1
2Object LruCache.on(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object LruCache.on(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
addListener
Lier un gestionnaire d'événements à l'objet
1
2Object LruCache.addListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object LruCache.addListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object LruCache.prependListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object LruCache.prependListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
once
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1
2Object LruCache.once(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1Object LruCache.once(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependOnceListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object LruCache.prependOnceListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object LruCache.prependOnceListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
off
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object LruCache.off(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object LruCache.off(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object LruCache.off(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeListener
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object LruCache.removeListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object LruCache.removeListener(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object LruCache.removeListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeAllListeners
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object LruCache.removeAllListeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object LruCache.removeAllListeners(Array evs = []);
Paramètres d'appel :
- evs: Tableau, précisez le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
setMaxListeners
La limite par défaut du nombre d'auditeurs, pour des raisons de compatibilité uniquement
1LruCache.setMaxListeners(Integer n);
Paramètres d'appel :
- n: Entier, précisez le nombre d'événements
getMaxListeners
Obtient le nombre limite par défaut d'écouteurs, pour des raisons de compatibilité uniquement
1Integer LruCache.getMaxListeners();
Résultats de retour :
- Integer, renvoie la quantité limite par défaut
listeners
Interrogez le tableau d'écoute pour l'événement spécifié de l'objet
1Array LruCache.listeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Array, renvoie le tableau d'écoute pour l'événement spécifié
listenerCount
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1Integer LruCache.listenerCount(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1
2Integer LruCache.listenerCount(Value o,
String ev);
Paramètres d'appel :
- o: Valeur, précise l'objet de la requête
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
eventNames
Nom de l'événement d'écoute de requête
1Array LruCache.eventNames();
Résultats de retour :
- Array, renvoie un tableau de noms d'événements
emit
Déclencher activement un événement
1
2Boolean LruCache.emit(String ev,
...args);
Paramètres d'appel :
- ev: Chaîne, nom de l'événement
- args: ..., les paramètres de l'événement seront transmis à la fonction de traitement des événements
Résultats de retour :
- Boolean, renvoie l'état du déclencheur d'événement, renvoie vrai s'il y a un événement de réponse, sinon renvoie faux
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String LruCache.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value LruCache.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable