Junior — Middle
Kun je voorbeelden geven van algoritmen die worden gebruikt bij het bijwerken van gegevens in de cache?
sobes.tech AI
Antwoord van AI
Bij het bijwerken van gegevens in de cache worden vaak de volgende algoritmen toegepast:
- Write-through: gegevens worden gelijktijdig in de cache en in de hoofdopslag geschreven.
- Write-back (Write-behind): gegevens worden eerst in de cache geschreven, en de update van de hoofdopslag vindt later plaats.
- Cache-invalidering: bij wijziging van gegevens in de hoofdopslag wordt de cache gemarkeerd als verouderd en wordt deze bijgewerkt bij de volgende aanvraag.
- Time-to-live (TTL): de cache wordt automatisch bijgewerkt of verwijderd nadat de ingestelde tijd is verstreken.
Voorbeeld in Go voor TTL-cache-updates:
cache := make(map[string]CacheItem)
// CacheItem bevat gegevens en vervaltijd
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)}
}