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
Node.js Redis是否使用索引来获取数据?_Node.js_Redis - Fatal编程技术网

Node.js Redis是否使用索引来获取数据?

Node.js Redis是否使用索引来获取数据?,node.js,redis,Node.js,Redis,如果我这样做: client.get("foo", (err, res) => { console.log(res); }); Redis服务器中存储了数十亿个密钥,它会像只存储了几把密钥一样快速返回数据吗 或者我应该使用索引(如果Redis中有索引),就像在MongoDB中查询DB一样?Redis命令有一个,这意味着如果有10个、10k个或1000万个条目,它将始终在相同的时间内获取数据(不计算网络延迟和带宽)。在这种情况下,您将使用Redis作为一个简单的键值存储。作为内存中的数

如果我这样做:

client.get("foo", (err, res) => {
  console.log(res);
});
Redis服务器中存储了数十亿个密钥,它会像只存储了几把密钥一样快速返回数据吗

或者我应该使用索引(如果Redis中有索引),就像在MongoDB中查询DB一样?

Redis命令有一个,这意味着如果有10个、10k个或1000万个条目,它将始终在相同的时间内获取数据(不计算网络延迟和带宽)。在这种情况下,您将使用Redis作为一个简单的键值存储。作为内存中的数据库,它可以做到这一点,例如,与MongoDB不同


如果您有更复杂的数据结构,比如哈希,那么您可以进行二次索引。请参阅更多

Redis没有键索引。对于一个键的每个典型查询都有恒定的执行时间,
O(1)
,因此数据库中是否有一个或数十亿个键并不重要

但是,如果您计划搜索除密钥以外的任何内容,则可能需要检查文档中的


但同样,这些都是非关键索引。

散列是关键索引?是的,它们通常是这样实现的,但关键是由redis自动进行散列的,所以您不必做任何事情。但是,如果愿意,您可以将自己的哈希存储在db中。
Sorted sets as indexes
Lexicographically encoded indexes
Geospatial indexes
IP range indexes
Full text search indexes
Partitioned indexes