Junior — Middle
Ar galite pateikti pavyzdžių apie algoritmus, naudojamus duomenų atnaujinimui talpykloje?
sobes.tech AI
Atsakymas iš AI
Kai duomenys atnaujinami talpykloje, dažnai taikomi šie algoritmai:
- Write-through: duomenys rašomi vienu metu tiek į talpyklą, tiek į pagrindinę saugyklą.
- Write-back (Write-behind): duomenys pirmiausia rašomi į talpyklą, o pagrindinės saugyklos atnaujinimas vyksta vėliau.
- Talpyklos invalidacija: keičiant duomenis pagrindinėje saugykloje, talpykla pažymima kaip pasenusi ir atnaujinama kitą užklausą.
- Time-to-live (TTL): talpykla automatiškai atnaujinama arba ištrinama pasibaigus nustatytam laikui.
Pavyzdys Go kalba TTL atnaujinimui:
cache := make(map[string]CacheItem)
// CacheItem saugo duomenis ir pasibaigimo laiką
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)}
}