2012-05-17 12 views
15

Większość osób zaleca uruchamianie oddzielnych instancji Redis na różnych portach (6379 i 6380). Dlaczego jest to częściej zalecane w przypadku tworzenia drugiej bazy danych? Jeszcze nie przejrzałem całej dokumentacji, ale większość przykładów nie wspomina o "wyborze bazy danych Redis" podczas łączenia. Przykład z klientem Ruby, NRK/predis na README:Wiele instancji Redis

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

Obecnie prowadzony Hubot w naszym biurze ognisko, a ja pracuję na drugim dla GTalk, ponieważ można mieć tylko jedną kartę w użyciu dla każdej instancji Hubot. Zastanawiam się więc nad stworzeniem drugiej bazy danych lub instancji Redis, aby dane między dwoma hubotami były izolowane. Ale zanim dotarłem dużo dalej, chciałem zrozumieć, dlaczego używałbyś oddzielnych instancji, zamiast tylko tworzyć drugą bazę danych.

+0

Jeśli ktoś robi to samo, należy określić zmienną środowiskową REDISTOGO_URL, gdy używane są dwie instancje i dwie instancje redis. – brock

Odpowiedz

32

dwa główne powody:

  1. wielu baz danych są uważane ogólnie złe i być nieaktualne kilka dni, a oni mają jakieś kary wydajności, chociaż dość niewielkie.

  2. głównym powodem jest to, że Redis jest pojedynczym gwintowane, jeśli potrzebne są dwa różne źródła danych, inny Redis instancja poprawi wydajność, ponieważ będzie to wykorzystać inny procesor prawdopodobnie masz, natomiast jedna instancja będzie zawsze wykorzystują tylko jeden.

  3. Alos inny instancja redis może mieć ustawienie trwałości fdiffecten. Na przykład jedna instancja może używać tylko pamięć i inne można używać plików do przechowywania Redis Persistence

następnie istnieją inne zalety jak posiadanie oddzielnych haseł uwierzytelniających, LRU strategie, itp - który może być dokonana jedynie na poziomie instancji.

+0

Awesome - Pomyślałem, że był dobry powód. Dzięki – brock

Powiązane problemy