Junior — Middle
Kas saaksid anda näiteid algoritmidest, mida kasutatakse andmete värskendamisel vahemälus?
sobes.tech AI
Vastus AI-lt
Kui andmed värskendatakse vahemälus, rakendatakse sageli järgmisi algoritme:
- Write-through: andmed kirjutatakse samaaegselt nii vahemällu kui ka põhivarasse.
- Write-back (Write-behind): andmed kirjutatakse esmalt vahemällu, ning põhivarasse uuendamine toimub hiljem.
- Vahemälu kehtetuks muutmine: kui andmed muutuvad põhivaras, märgitakse vahemälu kui aegunud ning uuendatakse järgmisel päringul.
- Time-to-live (TTL): vahemälu automaatselt uuendatakse või kustutatakse pärast määratud aega.
Näide Go keeles TTL-i vahemälu uuendamisest:
cache := make(map[string]CacheItem)
// CacheItem sisaldab andmeid ja aegumisaega
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)}
}