Вы не хотите использовать несколько баз данных в одном экземпляре redis. Он устарел и, как вы отметили, несколько экземпляров позволяют вам использовать преимущества нескольких ядер. Если вы используете выбор базы данных, вам придется реорганизовать ее при обновлении. Мониторинг и управление несколькими экземплярами не является сложным и болезненным.
В самом деле, вы бы получили гораздо лучшие показатели для каждого db путем сегрегации на основе экземпляра. Каждый экземпляр имел бы статистику, отражающую этот сегмент данных, который может обеспечить лучшую настройку и более гибкий и точный мониторинг. Используйте последнюю версию и отделите свои данные по экземпляру.
Как сказал Джонатон, не используйте команду keys. Если вы просто создадите ключевой индекс, вы получите гораздо лучшую производительность. При добавлении ключа добавьте имя ключа в набор. Команда клавиш не очень полезна, как только вы увеличиваете масштаб, так как для возврата потребуется значительное время.
Пусть шаблон доступа определяет, как структурировать ваши данные, а не хранить его так, как вы думаете, работает, а затем работать над тем, как получить доступ и продолжить его позже. Вы увидите гораздо лучшую производительность и часто обнаруживаете, что код, потребляющий данные, намного чище и проще.
Что касается одиночной резьбы, считайте, что redis предназначен для скорости и атомарности. Уверенные действия, изменяющие данные в одном db, не должны ждать другого db, но что, если это действие сохраняется в файле дампа или обрабатывает транзакции на ведомых? В этот момент вы начинаете проникать в сорняки программирования параллелизма.
Используя несколько экземпляров, вы превращаете многопоточную сложность в более простую систему стилей передачи сообщений.