Sobes.tech
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)}
}