Back to questions
Okko
Senior
3
Ваш сервис был API, по которому ходили другие сервисы. В Redis у вас хранились данные для обогащения — почему вы не ходили на каждый запрос в сервис справочников (о складах и т.д.)?
Companies where asked
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 для обогащения
}