Junior — Middle
Puoi fornire esempi di algoritmi utilizzati durante l'aggiornamento dei dati nella cache?
sobes.tech AI
Risposta dell'AI
Quando si aggiornano i dati nella cache, spesso vengono applicati i seguenti algoritmi:
- Write-through: i dati vengono scritti contemporaneamente nella cache e nell'archivio principale.
- Write-back (Write-behind): i dati vengono prima scritti nella cache, e l'aggiornamento dell'archivio principale avviene successivamente.
- Invalidazione della cache: quando i dati nell'archivio principale vengono modificati, la cache viene contrassegnata come obsoleta e aggiornata alla prossima richiesta.
- Time-to-live (TTL): la cache viene automaticamente aggiornata o eliminata dopo che il tempo stabilito è scaduto.
Esempio in Go per l'aggiornamento TTL della cache:
cache := make(map[string]CacheItem)
// CacheItem contiene i dati e il tempo di scadenza
type CacheItem struct {
Data interface{}
ExpiresAt time.Time
}
func GetFromCache(key string) (interface{}, bool) {
item, found := cache[key]
if !found || time.Now().After(item.ExpiresAt) {
return nil, false
}
return item.Data, true
}
func SetToCache(key string, data interface{}, duration time.Duration) {
cache[key] = CacheItem{Data: data, ExpiresAt: time.Now().Add(duration)}
}