Sobes.tech
Junior — Middle

Tudsz példákat adni az adatok cache-ben történő frissítéséhez használt algoritmusokra?

sobes.tech MI

Válasz az MI-től

Az adatok cache-ben történő frissítésekor gyakran alkalmazzák a következő algoritmusokat:

  • Write-through: az adatok egyidejűleg íródnak a cache-be és a fő tárolóba.
  • Write-back (Write-behind): az adatok először a cache-be íródnak, majd később a fő tároló frissül.
  • Cache érvénytelenítés: a fő tárolóban történő adatváltozás esetén a cache-t elavultnak jelölik, és a következő kéréskor frissítik.
  • Time-to-live (TTL): a cache automatikusan frissül vagy törlődik a megadott idő elteltével.

Példa Go nyelven TTL cache frissítésére:

cache := make(map[string]CacheItem)

// CacheItem tartalmazza az adatokat és a lejárati időt

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