Sobes.tech
Junior — Middle

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:

  1. 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é.

  2. 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.

  3. 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.

  4. 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é.