Sobes.tech
Junior — Middle

Kannst du Beispiele für Algorithmen geben, die bei der Aktualisierung von Daten im Cache verwendet werden?

sobes.tech KI

Antwort von AI

Beim Aktualisieren der Daten im Cache werden häufig die folgenden Algorithmen angewendet:

  • Write-through: Daten werden gleichzeitig in den Cache und in das Hauptspeicher geschrieben.
  • Write-back (Write-behind): Daten werden zuerst in den Cache geschrieben, und die Aktualisierung des Hauptspeichers erfolgt später.
  • Cache-Invalidierung: Bei Änderungen der Daten im Hauptspeicher wird der Cache als veraltet markiert und bei der nächsten Anfrage aktualisiert.
  • Time-to-live (TTL): Der Cache wird automatisch aktualisiert oder gelöscht, nachdem die festgelegte Zeit abgelaufen ist.

Beispiel in Go für TTL-Cache-Aktualisierung:

cache := make(map[string]CacheItem)

// CacheItem enthält Daten und Ablaufzeit

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)}
}