Что такое sync.Map и когда он лучше map+Mutex?

Middle
144 просмотров
AFK Offer AI

sync.Map оптимизирован для двух паттернов: ключ записывается один раз и читается много (cache), или разные горутины работают с разными ключами (sharding). Внутри — два map: read (lock-free) и dirty (с локом). Для остальных случаев map+RWMutex быстрее. sync.Map не типизирован (interface{}), с Go 1.18 можно обернуть в generic.

Следующий вопрос

Какие библиотеки для работы с Redis в Go?