Как я могу обновить многоключевой элемент хэша в redis? - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть коллекция Providers.У каждого провайдера может быть несколько Orders.

. Мне нужно сохранить в redis идентификаторы заказа, относящиеся к каждому провайдеру в массиве json.

Одним из возможных решений является использование HSET.

HSET provider_orders providerId:1 "['1234']"

или в javascript:

ioredis.hset(
    'provider_orders',
    `providerId:1`,
    ['1234'],
  )

Где 1 - идентификатор провайдера, а '1234' - идентификатор_идентификации

Однако, если мне нужно добавить новый заказ втот же поставщик мне нужно было бы получить массив идентификаторов текущего заказа и добавить новый идентификатор заказа.

Примерно так:

const currentOrders = ioredis.hget(
        'provider_orders',
        `providerId:${deliverer.id}`
      )
currentOrders.push(newOrder)
ioredis.hset(
        'provider_orders',
        `providerId:${deliverer.id}`,
        currentOrders,
      )

Это лучший способ сделать что-то подобное?

Другой вариант, который я рассмотрел, - это создание новых ключей для каждого провайдера и использование SADD.

SADD provider:order:1 "1234"

Где 1 - это идентификатор провайдера, а '1234' - это порядковый номер

Однако это создаст много ключей.Один на каждого провайдера.

...