0

我有一个集合Providers。每个提供者可以有多个Orders.

我需要在redis中保存与json数组中每个提供者相关的订单ID。

一种可能的解决方案是使用 HSET。

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

或在 javascript 中:

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

1提供者 ID 和'1234'orderId在哪里

但是,如果我需要向同一个提供商添加新订单,我需要获取当前订单 ID 数组并添加新订单 ID。

像这样的东西:

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提供者 ID 和'1234'orderId在哪里

但是,这会创建很多密钥。每个提供商一个。

4

0 回答 0