如何在Redis中更新多键哈希项?

时间:2019-02-04 05:05:42

标签: javascript redis ioredis

我收藏了Providers。 每个提供者可以有多个Orders

我需要在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

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

0 个答案:

没有答案