Sobes.tech
Junior — Middle

¿Puedes dar ejemplos de algoritmos utilizados al actualizar datos en la caché?

sobes.tech AI

Respuesta de la IA

Al actualizar los datos en la caché, a menudo se aplican los siguientes algoritmos:

  • Write-through: los datos se escriben simultáneamente en la caché y en el almacenamiento principal.
  • Write-back (Write-behind): los datos se escriben primero en la caché, y la actualización del almacenamiento principal ocurre más tarde.
  • Invalidación de caché: al cambiar los datos en el almacenamiento principal, la caché se marca como obsoleta y se actualiza en la siguiente solicitud.
  • Tiempo de vida (TTL): la caché se actualiza o elimina automáticamente después de que expira el tiempo establecido.

Ejemplo en Go para la actualización de TTL en caché:

cache := make(map[string]CacheItem)

// CacheItem contiene datos y tiempo de expiración

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