Comment peut-on mettre à jour le contenu du service de cache?
sobes.tech IA
Réponse de l'IA
La mise à jour du contenu du service de cache en Go se fait généralement par plusieurs approches:
-
Mise à jour directe de la valeur par clé — si le cache est représenté sous forme de map ou de structure spécialisée, on peut simplement remplacer la valeur associée à la clé.
-
Utilisation de TTL (Time To Live) — le cache se met à jour automatiquement après l'expiration de la durée de vie de l'entrée.
-
Mécanisme d'invalidation — lors de la modification des données dans la source, le cache est marqué comme obsolète et mis à jour lors de la prochaine requête.
-
Mise à jour en arrière-plan (refresh) — une goroutine est lancée périodiquement pour mettre à jour le cache selon un calendrier.
Exemple d'une mise à jour simple du cache utilisant une map et un mutex pour la sécurité en concurrence:
import "sync"
type Cache struct {
mu sync.Mutex
store map[string]string
}
func (c *Cache) Update(key, value string) {
c.mu.Lock()
defer c.mu.Unlock()
c.store[key] = value
}
func (c *Cache) Get(key string) (string, bool) {
c.mu.Lock()
defer c.mu.Unlock()
val, ok := c.store[key]
return val, ok
}
Ainsi, la mise à jour se fait via la méthode Update, qui remplace en toute sécurité le contenu par clé.