我需要保存一个用户模型,例如:
{ "nickname": "alan", "email": ..., "password":..., ...} // and a couple of other fields
今天,我使用一个Set:users 在这个Set中,我有一个类似于user:alan的 成员在这个成员中,我上面有哈希
这很好,但是我只是想知道是否可以使用以下方法代替上述方法:
仍使用用户集(以轻松获取用户(成员)列表) 在此集中,仅使用键/值存储,例如:
键:alan值:上述用户哈希的字符串化版本
这样,检索记录将变得更加容易(然后我将不得不使用JSON对其进行解析)。
我是Redis的新手,我不确定什么是最好的。你怎么看 ?
您可以使用Redis 哈希数据结构来存储JSON对象字段和值。例如,您的“用户”集仍然可以用作存储所有用户的列表,并且您的单个JSON对象可以像这样存储在哈希中:
db.hmset("user:id", JSON.stringify(jsonObj));
现在,您可以通过密钥获取所有用户或仅特定用户的密钥(从中只能获取/设置指定的字段/值)。另外,这两个问题可能与您的情况有关。
编辑:(对不起,我没有意识到我们之前讨论过这个问题)
的确如此,但是使用哈希数据结构,您只能获取/设置您需要使用的字段/值。如果您只想更改对象的一部分,则检索整个JSON对象可能会导致性能降低(取决于您执行操作的频率)(另一件事是您每次都需要对对象进行字符串化/解析)。