Sobes.tech
Junior — Middle

Como pode atualizar o conteúdo do serviço de cache?

sobes.tech IA

Resposta da IA

A atualização do conteúdo do serviço de cache em Go geralmente ocorre através de várias abordagens:

  1. Atualização direta do valor por chave — se o cache for apresentado na forma de mapa ou estrutura especializada, pode simplesmente substituir o valor pela chave.

  2. Uso de TTL (Time To Live) — o cache é atualizado automaticamente após a expiração do tempo de vida do registo.

  3. Mecanismo de invalidação — ao alterar os dados na fonte, o cache é marcado como obsoleto e atualizado na próxima solicitação.

  4. Atualização em segundo plano (refresh) — uma goroutine é iniciada periodicamente para atualizar o cache de acordo com um cronograma.

Exemplo de uma atualização simples do cache usando um mapa e mutex para segurança em concorrência:

import "sync"

type Cache struct {
    mu    sync.Mutex
    store map[string]string
}

func (c *Cache) Update(key, value string) {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.store[key] = value
}

func (c *Cache) Get(key string) (string, bool) {
    c.mu.Lock()
    defer c.mu.Unlock()
    val, ok := c.store[key]
    return val, ok
}

Desta forma, a atualização ocorre através do método Update, que substitui de forma segura o conteúdo por chave.