Sobes.tech
Назад к вопросам
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)
}