Назад к вопросам
Middle
1
Работали ли с кэшированием на фронте и на бэке?
Компании, где спрашивали
e-legion
Ответ от нейросети
sobes.tech AI
Да, работал с кэшированием как на фронтенде, так и на бэкенде. На фронте обычно использовал браузерный кэш и service workers для кеширования статических ресурсов и API-запросов, что улучшало производительность и снижало нагрузку на сервер.
На бэкенде применял разные подходы: кэширование в памяти с помощью Redis или Memcached для ускорения доступа к часто запрашиваемым данным, а также HTTP-кэширование с использованием заголовков Cache-Control и ETag. Например, для API часто кэшировал результаты сложных запросов, чтобы уменьшить время отклика и нагрузку на базу данных.
Пример кэширования в Go с Redis:
import (
"github.com/go-redis/redis/v8"
"context"
"time"
)
ctx := context.Background()
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
// Сохраняем данные в кэш на 10 минут
err := client.Set(ctx, "user:123", "John Doe", 10*time.Minute).Err()
if err != nil {
panic(err)
}
// Получаем данные из кэша
val, err := client.Get(ctx, "user:123").Result()
if err == redis.Nil {
// Кэш пустой, нужно получить из БД
} else if err != nil {
panic(err)
} else {
fmt.Println("Cached value:", val)
}