Back to questions
МВидео
Senior
5
Postgres является мастер-данными для справочника. В Postgres появилась новая номенклатура (новый товар) — он должен появиться в Redis?
Companies where asked
Answer from AI
sobes.tech AI
Если Postgres является источником правды (мастер-данными) для справочника, то при появлении новой номенклатуры (нового товара) в Postgres, данные должны быть синхронизированы с Redis, если Redis используется как кэш или быстрый доступ к справочнику.
Для этого обычно реализуют один из подходов:
- Событийная синхронизация — после добавления товара в Postgres генерируется событие, которое обрабатывается сервисом и обновляет Redis.
- Периодическая синхронизация — по расписанию данные из Postgres выгружаются и обновляют Redis.
- 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, обеспечивая актуальность данных.