🚀 Infrarust V2 is now in alpha! Check out the new documentation. V1 will be archived once V2 is released.
Skip to content

Cache ​

Le système de cache d'Infrarust optimise les performances en stockant temporairement les réponses des serveurs.

Configuration ​

Le système de cache peut être configuré globalement dans config.yaml et personnalisé par serveur dans les configurations de proxy :

yaml
# Configuration globale du cache dans config.yaml
cache:
  status_ttl_seconds: 30       # Durée de vie des entrées du cache de statut (en secondes)
  max_status_entries: 1000     # Nombre maximum d'entrées dans le cache de statut

# Configuration spécifique au serveur dans proxies/*.yml
caches:
  status_ttl_seconds: 15       # Remplace la durée de vie pour ce serveur
  max_status_entries: 500      # Remplace le nombre maximum d'entrées pour ce serveur

Valeurs par défaut ​

Si non spécifiées, ces valeurs par défaut sont utilisées :

  • status_ttl_seconds : 30 secondes
  • max_status_entries : 1000 entrĂ©es

Types de cache ​

Cache de statut ​

Le cache de statut stocke les réponses ping/statut des serveurs :

  • RĂ©duit la charge sur les serveurs minecraft en mettant en cache les rĂ©ponses de statut
  • Offre des temps de rĂ©ponse plus rapides pour les requĂŞtes de liste de serveurs des clients
  • Invalide automatiquement les entrĂ©es après expiration de la durĂ©e de vie
  • Utilise le domaine et la version du protocole comme clĂ©s de cache

Avantages du cache de statut ​

  • Protection : Protège les serveurs minecraft contre les afflux de requĂŞtes de statut
  • Performance : RĂ©duit le temps de rĂ©ponse pour l'Ă©cran de liste des serveurs
  • CohĂ©rence : Fournit des rĂ©ponses stables mĂŞme lorsque les serveurs minecraft sont occupĂ©s

Comportement du cache ​

Lorsqu'un client demande le statut d'un serveur :

  1. Infrarust vérifie si un statut en cache valide existe
  2. Si trouvé et non expiré, renvoie le statut en cache
  3. Si non trouvé ou expiré, transmet la requête au serveur minecraft
  4. Met en cache la nouvelle réponse pour les futures requêtes

Fonctionnalités avancées ​

Invalidation du cache ​

Les entrées du cache de statut sont invalidées :

  • Automatiquement après expiration de la durĂ©e de vie
  • Lorsque la configuration du serveur associĂ© change
  • Lorsque le serveur devient inaccessible

Gestion de la mémoire ​

Infrarust limite l'utilisation de la mémoire avec le paramètre max_status_entries, qui plafonne le nombre de réponses de statut mises en cache. Lorsque cette limite est atteinte, les entrées les plus anciennes sont évincées en premier.

Améliorations futures ​

Les fonctionnalités suivantes sont prévues mais pas encore implémentées :

  • Limites de mĂ©moire : ContrĂ´le prĂ©cis de l'utilisation de la mĂ©moire
yaml
cache:
  memory_limit_mb: 512        # Utilisation maximale de la mémoire
  cleanup_interval: 60        # Intervalle de nettoyage en secondes
  • Compression du cache : RĂ©duction de l'empreinte mĂ©moire par compression
  • Éviction intelligente : StratĂ©gies d'Ă©viction du cache plus sophistiquĂ©es
  • Persistance du cache : Persistance optionnelle des donnĂ©es du cache sur disque
  • MĂ©triques de cache : Statistiques dĂ©taillĂ©es sur les performances du cache

Métriques du cache (Planifiées) ​

Dans les futures versions, le cache exposera des métriques détaillées :

  • Ratio hits/misses
  • Utilisation de la mĂ©moire
  • Temps de rĂ©ponse moyen
  • Nombre d'entrĂ©es actives
  • Taux d'Ă©viction

Ces métriques seront disponibles via le système de télémétrie d'Infrarust.

Released under the AGPL-3.0 License.