Вы можете использовать концепцию базы данных Redis для разделения данных. Это полностью поддерживается в текущей версии и будет поддерживаться в будущих.
Теперь, это не рекомендуемое решение для изоляции данных. Лучше вместо этого запустить несколько экземпляров Redis. Накладные расходы экземпляра очень малы (менее 1 МБ), поэтому вы можете запустить несколько из них на любом компьютере. Он более масштабируемый (рабочая нагрузка будет распределена на несколько ядер ЦП, а не на одно). Он более гибкий (вы можете использовать разные параметры конфигурации для набора данных или разные файлы дампа). Ваш клиент просто должен открыть одно соединение для каждого экземпляра, чтобы получить доступ к различным наборам данных.
Теперь, если вы все еще хотите использовать базы данных Redis и заинтересованы в производительности, вам необходимо оценить количество дополнительных обходов, которые они представляют. С базами данных в памяти, такими как Redis, стоимость всех основных операций практически одинакова, потому что в ней преобладает управление связью и протоколами, а не само выполнение. Поэтому, когда ключи / значения малы, команды GET, SET, SELECT обычно имеют одинаковую стоимость. Каждый раз, когда выполняется SELECT, это похоже на выполнение дополнительной команды GET или SET.
Используя ваши примеры, первое предложение будет генерировать 4 команды на элемент массива. Второе предложение будет генерировать только 2 команды на элемент, так что оно намного эффективнее. Если количество элементов является значительным, во втором предложении стоимость SELECT незначительна, а в первом - нет.
Если вы планируете выполнять итерации на массивах для запуска команд Redis, рассмотрите возможность использования команд с переменными параметрами (например, MGET / MSET) или конвейерной передачи (если ваш клиент поддерживает это), чтобы уменьшить общее количество циклических обращений.