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:
-
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.
-
Uso de TTL (Time To Live) — o cache é atualizado automaticamente após a expiração do tempo de vida do registo.
-
Mecanismo de invalidação — ao alterar os dados na fonte, o cache é marcado como obsoleto e atualizado na próxima solicitação.
-
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.