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