我有一个集合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在哪里
但是,这会创建很多密钥。每个提供商一个。