Использует ли Redis индексы для получения данных? - PullRequest
0 голосов
/ 27 ноября 2018

Если я делаю это:

client.get("foo", (err, res) => {
  console.log(res);
});

И на сервере Redis хранятся миллиарды ключей, будет ли он возвращать данные так же быстро, как если бы там хранилась только пара ключей?

ИЛИ что мне следует использовать индекс (если есть индексы в Redis), так же, как запрашивать БД в MongoDB?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Redis не имеет индексов для ключей.Каждый типичный запрос для ключа будет иметь постоянное время выполнения, O(1), поэтому не имеет значения, есть ли у вас один или миллиарды ключей в базе данных.

Однако, если вы планируете искать что-то кромеключ, вы можете проверить документы для шаблонов индексации

Sorted sets as indexes
Lexicographically encoded indexes
Geospatial indexes
IP range indexes
Full text search indexes
Partitioned indexes

Но, опять же, это неключевые индексы.

0 голосов
/ 27 ноября 2018

Redis GET команда имеет O (1) сложность , что означает, что она всегда будет получать данные в одно и то же время (не считая сети)задержка и пропускная способность), если есть 10, 10k или 10 миллионов записей.Это тот случай, когда вы используете Redis простое хранилище значений ключей.Будучи базой данных в памяти, она может торговать, в отличие от MongoDB, например.

Если у вас есть более сложные структуры данных, такие как хеши, вы можете выполнить вторичную индексацию.Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...