Come si può aggiornare il contenuto del servizio di cache?
sobes.tech AI
Risposta dell'AI
L'aggiornamento del contenuto del servizio di cache in Go avviene generalmente attraverso diversi approcci:
-
Aggiornamento diretto del valore per chiave — se la cache è rappresentata come una mappa o una struttura specializzata, è possibile semplicemente sostituire il valore associato alla chiave.
-
Utilizzo di TTL (Time To Live) — la cache si aggiorna automaticamente dopo la scadenza del tempo di vita dell'elemento.
-
Meccanismo di invalidazione — quando i dati nella fonte vengono modificati, la cache viene contrassegnata come obsoleta e aggiornata alla richiesta successiva.
-
Aggiornamento in background (refresh) — viene avviata periodicamente una goroutine che aggiorna la cache secondo un programma.
Esempio di un semplice aggiornamento della cache usando una mappa e mutex per la sicurezza concorrente:
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
}
In questo modo, l'aggiornamento avviene tramite il metodo Update, che sostituisce in modo sicuro il contenuto per chiave.