Junior — Middle
Môžeš uviesť príklady algoritmov používaných pri aktualizácii údajov v cache?
sobes.tech AI
Odpoveď od AI
Pri aktualizácii dát v cache sa často používajú nasledujúce algoritmy:
- Write-through: dáta sa zapisujú súčasne do cache a do hlavného úložiska.
- Write-back (Write-behind): dáta sa najskôr zapisujú do cache a aktualizácia hlavného úložiska sa vykonáva neskôr.
- Invalidácia cache: pri zmene dát v hlavnom úložisku je cache označená ako zastaraná a aktualizuje sa pri nasledujúcej požiadavke.
- Time-to-live (TTL): cache sa automaticky aktualizuje alebo odstraňuje po uplynutí stanoveného času.
Príklad v Go pre TTL aktualizáciu cache:
cache := make(map[string]CacheItem)
// CacheItem obsahuje dáta a čas vypršania
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)}
}