小编典典

Redis性能,将json对象存储为字符串

redis

我需要保存一个用户模型,例如:

{ "nickname": "alan",
  "email": ...,
  "password":...,
  ...} // and a couple of other fields

今天,我使用一个Set:users
在这个Set中,我有一个类似于user:alan的
成员在这个成员中,我上面有哈希

这很好,但是我只是想知道是否可以使用以下方法代替上述方法:

仍使用用户集(以轻松获取用户(成员)列表)
在此集中,仅使用键/值存储,例如:

键:alan值:上述用户哈希的字符串化版本

这样,检索记录将变得更加容易(然后我将不得不使用JSON对其进行解析)。

我是Redis的新手,我不确定什么是最好的。你怎么看 ?


阅读 1203

收藏
2020-06-20

共1个答案

小编典典

您可以使用Redis
哈希数据结构来存储JSON对象字段和值。例如,您的“用户”集仍然可以用作存储所有用户的列表,并且您的单个JSON对象可以像这样存储在哈希中:

db.hmset("user:id", JSON.stringify(jsonObj));

现在,您可以通过密钥获取所有用户或仅特定用户的密钥(从中只能获取/设置指定的字段/值)。另外,这两个问题可能与您的情况有关。

编辑:(对不起,我没有意识到我们之前讨论过这个问题)

这样,检索记录将变得更加容易(然后我将不得不使用JSON对其进行解析)。

的确如此,但是使用哈希数据结构,您只能获取/设置您需要使用的字段/值。如果您只想更改对象的一部分,则检索整个JSON对象可能会导致性能降低(取决于您执行操作的频率)(另一件事是您每次都需要对对象进行字符串化/解析)。

2020-06-20