In-memory кэш: sync.Map или map + sync.RWMutex с TTL. Библиотеки: patrickmn/go-cache, dgraph-io/ristretto, allegro/bigcache. Для распределённого — Redis с go-redis. Паттерны: cache-aside (проверь кэш → miss → БД → положи в кэш), write-through (пиши в кэш и БД), write-behind (пиши в кэш, async в БД). Cache invalidation — одна из двух самых сложных проблем CS. TTL — простейший вариант. Для защиты от thundering herd — singleflight.Group (один запрос к БД, остальные ждут).