Почему Redis использует целые числа базы данных вместо строк? Похоже, было бы тривиально сохранить небольшую внутреннюю структуру данных, которая отображает строки в «фактическое» целое число.Почему Redis использует целые номера базы данных?
ответ
Причина, по которой Redis не использует строки как имена БД, но индексы заключаются в том, что цель и способность баз данных Redis не предоставлять внешний уровень словаря: словари Redis не могут масштабироваться для многих словарей, но только для небольшое число (это компромисс), и мы не хотим создавать вложенные структуры данных для каждого проекта, поэтому это всего лишь «несколько пространств имен», и в результате использование числового малого индекса показалось лучшим вариантом.
Есть ли причина, по которой это лучший подход, чем обработка имени базы данных в качестве префикса строки пространства имен? – shazow
Именованные базы данных не соответствуют целям дизайна redis. Для начала, в системе, предназначенной для максимальной производительности, добавление поиска строк для каждого вызова не является отличной идеей, когда большинство пользователей ставят все в DB 0 в любом случае.
Еще одна цель проекта - сохранить простую основу. Если запрошенная новая команда может быть реализована путем объединения существующих команд на клиенте без огромного штрафа за производительность, она не будет добавлена в основную систему. Если вам действительно нужны именованные базы данных, тривиально обновить код клиента, прочитав строку, и отправьте номер на redis.
«добавление поиска строк для каждого вызова» - исправьте меня, если я ошибаюсь, но вам нужно будет только искать каждый вызов SELECT (т. Е. Отображать символическое имя в целое число), нет? –
Правда, хотя это может быть близко к эквиваленту в зависимости от того, как вы используете базы данных и соединения. –
Лучше спросить о списке redis. – bmargulies
Если я не могу получить ответ здесь, это будет моим следующим шагом ... Но я стараюсь избегать списков рассылки, когда это когда-либо возможно: P –
Люди, которые голосовали за закрытие: не могли бы вы оставить комментарий, объясняющий почему? Я не думаю, что «этот вопрос», скорее всего, потребует мнения, дискуссии, аргументы, опрос или расширенную дискуссию », и я знаю, что Редис не так популярен, но я не думаю, что вопросы об этом квалифицируются как" необычайно узкий ". –