Несколько экземпляров Redis

Большинство людей, похоже, рекомендуют запускать отдельные экземпляры Redis на разных портах (6379 и 6380). Почему это более рекомендуется для создания второй базы данных? Я еще не полностью документировал документацию, но большинство примеров на самом деле не упоминают "выбор базы данных Redis" при подключении. Пример из клиента Ruby, nrk/predis README:

$redis = new Predis\Client(array(
    'scheme' => 'tcp',
    'host'   => '10.0.0.1',
    'port'   => 6379,
));

В настоящее время мы запускаем Hubot в нашем офисе с Campfire, и я работаю над вторым для GTalk, так как вы можете использовать только один адаптер для каждого экземпляра Hubot. Поэтому я рассматриваю возможность создания второй базы данных или экземпляра Redis, чтобы данные между двумя hubots были изолированы. Но прежде чем я получил намного больше, я хотел понять, почему вы использовали бы отдельные экземпляры вместо создания второй базы данных.

Ответы

Ответ 1

две основные причины:

  • несколько баз данных считаются в целом плохими и когда-то считаются устаревшими, и у них есть некоторые штрафы за производительность, хотя и довольно незначительные.

  • Основная причина заключается в том, что redis является однопоточным, если вам нужны два разных источника данных, другой экземпляр redis повысит производительность, поскольку он будет использовать другой процессор, который у вас есть, хотя один экземпляр всегда будет использовать только один.

  • У другого экземпляра redis Alos может быть параметр сохранения fdiffecten. Например, один экземпляр может использовать только память, а другой может использовать файлы в качестве хранилища Redis Persistence

тогда есть другие преимущества, такие как наличие отдельных паролей auth, стратегий lru и т.д. - которые могут выполняться только на уровне экземпляра.