Junior — Middle
Můžeš uvést příklady algoritmů používaných při aktualizaci dat v cache?
sobes.tech AI
Odpověď od AI
Při aktualizaci dat v cache se často používají následující algoritmy:
- Write-through: data jsou zapisována současně do cache a do hlavního úložiště.
- Write-back (Write-behind): data jsou nejprve zapisována do cache a aktualizace hlavního úložiště probíhá později.
- Invalidace cache: při změně dat v hlavním úložišti je cache označena jako zastaralá a aktualizuje se při následujícím požadavku.
- Time-to-live (TTL): cache se automaticky aktualizuje nebo odstraňuje po uplynutí stanovené doby.
Příklad v Go pro TTL aktualizaci cache:
cache := make(map[string]CacheItem)
// CacheItem obsahuje data a čas expirace
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)}
}