Sobes.tech
Back to questions
Senior
3

Ваш сервис был API, по которому ходили другие сервисы. В Redis у вас хранились данные для обогащения — почему вы не ходили на каждый запрос в сервис справочников (о складах и т.д.)?

Companies where asked
OkkoOkko

Answer from AI

sobes.tech AI

Основная причина, почему не обращались к сервису справочников на каждый запрос, а использовали Redis для хранения данных обогащения, — это производительность и снижение задержек. Запросы к внешним сервисам обычно дороже по времени и ресурсам, могут создавать узкие места и повышать нагрузку.

Redis — это быстрый in-memory кэш, который позволяет хранить часто используемые данные (например, информацию о складах) и быстро их доставать. Таким образом, при обработке запросов к API можно быстро обогатить данные, не делая лишних сетевых вызовов.

Это снижает время отклика сервиса и повышает его устойчивость, так как при недоступности справочника данные в Redis остаются доступными.

Пример использования Redis в Go:

import (
    "github.com/go-redis/redis/v8"
    "context"
)

ctx := context.Background()
rdb := redis.NewClient(&redis.Options{
    Addr: "localhost:6379",
})

// Получение данных из Redis
val, err := rdb.Get(ctx, "warehouse:123").Result()
if err == redis.Nil {
    // Данные отсутствуют, можно запросить справочник и обновить кэш
} else if err != nil {
    // Обработка ошибки
} else {
    // Использовать val для обогащения
}