如何构建NoSQL架构,以便我可以根据记录属性查询记录?

时间:2013-04-22 16:53:28

标签: nosql redis

我正在玩各种NoSQL数据库(主要是redis和couchdb),并遇到了一个问题:

如果我像这样保存用户数据:

SET user:5 "{name: \"foobar\", age: 26}"

我总是可以使用GET user:5检索它。但是,如果我不知道用户的ID,但确实知道他们的name,并想查询id

,该怎么办?

我们正在讨论的一些想法涉及与另一个SET usernames:foobar "5"同时发送SET,但由于它们与RDBMS不相关,因此草率代码可能会意外地导致数据不匹配。 / p>

是否有处理此类程序的“标准”方式?

1 个答案:

答案 0 :(得分:1)

您所描述的方法几乎是Redis的标准方法。

您实际上是在创建用户名索引。其他系统会自动为您创建此类索引,并在数据更改时对其进行维护。使用Redis,您必须自己完成。

是的,草率代码会导致数据不匹配。这是每次非规范化或创建索引时支付的成本。你只需要小心它。