Sobes.tech
Junior — Middle

Poți oferi exemple de algoritmi utilizați la actualizarea datelor în cache?

sobes.tech AI

Răspuns de la AI

Atunci când actualizați datele în cache, de obicei se aplică următorii algoritmi:

  • Write-through: datele sunt scrise simultan în cache și în depozitul principal.
  • Write-back (Write-behind): datele sunt scrise mai întâi în cache, iar actualizarea depozitului principal are loc mai târziu.
  • Invalidarea cache-ului: la modificarea datelor în depozitul principal, cache-ul este marcat ca învechit și actualizat la următoarea solicitare.
  • Time-to-live (TTL): cache-ul se actualizează sau se șterge automat după expirarea timpului stabilit.

Exemplu în Go pentru actualizarea TTL a cache-ului:

cache := make(map[string]CacheItem)

// CacheItem conține date și timpul de expirare

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)}
}