Sobes.tech
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)}
}