如何在 redis 中使用 hmset 将数组添加到哈希中



我在 redis 的哈希中存储了一些键/值。 例如我有这个 json

{
"title": "CEO",
"originId": "52",
"status": "A"
}

我存储此 json 的代码是:

await redis.hmset(`role-${roleId}`, { title, originId, status })

所以现在我想添加一个 Id 数组作为必填字段到这个哈希中。那么如何将这个数组添加到这个哈希中呢? 我的数组是这样的:

{
"mandatories": ["119","120"],
}

您可以将其添加为同一哈希键中的另一个字段,但将数组字符串化。

await redis.hset(`role-${roleId}`, 'mandatories', JSON.stringify(mandatories))

这样,您仍然可以 HGETALL 整个角色对象数据。但是,您必须将 ID 数组作为一个整体进行管理。

或者,您可以将数组平展为列表集、集集或排序集。例如,要添加为,您可以执行以下操作:

await redis.sadd(`role-${roleId}-mandatories`, mandatories)

请注意,我们将'-mandatories'添加到键名称中。在这里,您将数组传递给节点.js redissadd函数。它将每个数组项添加为集合中的成员。这允许您直接操作强制程序集(SPOP,SREM,SISMEMBER等(。

请注意,根据 Redis 4.0.0,HMSET被视为已弃用。请改用HSET

最新更新