Ответ
В Go можно обновить кэш разными способами, в зависимости от реализации. Простейший вариант — использовать map с мьютексом для потокобезопасности:
type Cache struct {
sync.RWMutex
items map[string]string
}
func (c *Cache) Update(key, value string) {
c.Lock()
defer c.Unlock()
c.items[key] = value
}
Для TTL-кэша можно использовать time.Now() для обновления времени жизни:
type Item struct {
Value string
Expiry time.Time
}
func (c *Cache) UpdateWithTTL(key, value string, ttl time.Duration) {
c.Lock()
defer c.Unlock()
c.items[key] = Item{
Value: value,
Expiry: time.Now().Add(ttl),
}
}
Для сложных сценариев можно рассмотреть готовые решения, например github.com/patrickmn/go-cache.