Sobes.tech
Junior — Middle

Pouvez-vous donner des exemples d'algorithmes utilisés lors de la mise à jour des données dans le cache?

sobes.tech IA

Réponse de l'IA

Lors de la mise à jour des données dans le cache, les algorithmes suivants sont souvent utilisés:

  • Write-through : les données sont écrites simultanément dans le cache et dans le stockage principal.
  • Write-back (Write-behind) : les données sont d'abord écrites dans le cache, puis la mise à jour du stockage principal se produit plus tard.
  • Invalidation du cache : lors de la modification des données dans le stockage principal, le cache est marqué comme obsolète et mis à jour lors de la prochaine requête.
  • Time-to-live (TTL) : le cache est automatiquement mis à jour ou supprimé après l'expiration du délai spécifié.

Exemple en Go pour la mise à jour TTL du cache:

cache := make(map[string]CacheItem)

// CacheItem contient les données et le temps d'expiration

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