Sobes.tech
Назад к вопросам
Senior
6

Postgres является мастер-данными для справочника. В Postgres появилась новая номенклатура (новый товар) — он должен появиться в Redis?

Компании, где спрашивали
МВидеоМВидео

Ответ от нейросети

sobes.tech AI

Если Postgres является источником правды (мастер-данными) для справочника, то при появлении новой номенклатуры (нового товара) в Postgres, данные должны быть синхронизированы с Redis, если Redis используется как кэш или быстрый доступ к справочнику.

Для этого обычно реализуют один из подходов:

  1. Событийная синхронизация — после добавления товара в Postgres генерируется событие, которое обрабатывается сервисом и обновляет Redis.
  2. Периодическая синхронизация — по расписанию данные из Postgres выгружаются и обновляют Redis.
  3. Write-through кэш — при записи в Postgres одновременно обновляется Redis.

Пример на Go (упрощённо):

// После вставки товара в Postgres
func AddProduct(product Product) error {
    err := insertIntoPostgres(product)
    if err != nil {
        return err
    }
    // Обновляем Redis
    err = redisClient.Set(ctx, product.ID, product, 0).Err()
    return err
}

Таким образом, новая номенклатура появится в Redis, обеспечивая актуальность данных.