2

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

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

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

我总是可以用GET user:5. 但是,如果我不知道用户的 id 但知道他们的 idname并想查询以找出id?

我们提出的一些想法涉及SET usernames:foobar "5"与另一个同时发送SET,但是因为它们不像在 RDBMS 中那样相关,所以草率的代码可能会意外地导致数据不匹配。

是否有处理这样的程序的“标准”方式?

4

1 回答 1

1

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

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

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

于 2013-04-23T03:45:25.983 回答