Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何构造NoSQL模式,以便根据记录属性查询记录?_Nosql_Redis - Fatal编程技术网

如何构造NoSQL模式,以便根据记录属性查询记录?

如何构造NoSQL模式,以便根据记录属性查询记录?,nosql,redis,Nosql,Redis,我在使用各种NoSQL数据库(主要是redis和couchdb)时遇到了一个问题: 如果我这样保存用户数据: SET用户:5“{姓名:\'foobar\,年龄:26}” 我总是可以使用GET user:5检索它。但是,如果我不知道用户的id,但知道他们的名称,并希望查询以找出id,该怎么办 我们讨论的一些想法涉及在发送另一个SET的同时发送SET用户名:foobar“5”,但由于它们不像RDBMS中那样相关,草率的代码可能会意外地导致数据不匹配 有没有“标准”的方法来处理这样的过程?您描述的方法

我在使用各种NoSQL数据库(主要是redis和couchdb)时遇到了一个问题:

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

SET用户:5“{姓名:\'foobar\,年龄:26}”

我总是可以使用
GET user:5
检索它。但是,如果我不知道用户的id,但知道他们的
名称
,并希望查询以找出
id
,该怎么办

我们讨论的一些想法涉及在发送另一个
SET
的同时发送
SET用户名:foobar“5”
,但由于它们不像RDBMS中那样相关,草率的代码可能会意外地导致数据不匹配


有没有“标准”的方法来处理这样的过程?

您描述的方法与Redis中的标准方法基本相同

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


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

谢谢@sripathi krishnan。我们采用了这种方法,所以我们以后不会后悔的!