Back to questions
X5 group
Intern — Junior
132
Использовал ли ты механизм кэширования в своих проектах?
Companies where asked
Answer from AI
sobes.tech AI
Да, в проектах на Go часто используется кэширование для повышения производительности и снижения нагрузки на внешние ресурсы.
Например, можно использовать встроенные структуры данных, такие как map, для простого кэша в памяти, или сторонние библиотеки, например, golang-lru или groupcache.
Пример простого кэша с использованием map и mutex для потокобезопасности:
package main
import (
"fmt"
"sync"
)
type Cache struct {
mu sync.Mutex
store map[string]string
}
func NewCache() *Cache {
return &Cache{store: make(map[string]string)}
}
func (c *Cache) Get(key string) (string, bool) {
c.mu.Lock()
defer c.mu.Unlock()
val, ok := c.store[key]
return val, ok
}
func (c *Cache) Set(key, value string) {
c.mu.Lock()
defer c.mu.Unlock()
c.store[key] = value
}
func main() {
cache := NewCache()
cache.Set("foo", "bar")
if val, ok := cache.Get("foo"); ok {
fmt.Println("Cached value:", val)
} else {
fmt.Println("Value not found in cache")
}
}
Такой подход помогает быстро возвращать часто запрашиваемые данные без повторных вычислений или обращений к базе.