2012-05-17 34 views
15

La mayoría de las personas parecen recomendar la ejecución de instancias de Redis separadas en diferentes puertos (6379 y 6380). ¿Por qué es más comúnmente recomendado sobre la creación de una segunda base de datos? Aún no he completado completamente la documentación, pero la mayoría de los ejemplos no mencionan realmente la 'selección de una base de datos Redis' cuando se conectan. Un ejemplo del cliente Ruby, NRK/README de predis:Múltiples instancias de Redis

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

actualmente corremos hubot en nuestra oficina con fogata, y yo estoy trabajando en una segunda para GTalk, ya que sólo puede tener un único adaptador en uso para cada instancia de Hubot. Así que estoy considerando crear una segunda base de datos o instancia de Redis para que los datos entre los dos hubots estén aislados. Pero antes de llegar mucho más lejos, quería entender por qué utilizarías instancias separadas en lugar de simplemente crear una segunda base de datos.

+0

En caso de que alguien más esté haciendo lo mismo, debe especificar la variable de entorno REDISTOGO_URL cuando está utilizando dos hubots y dos instancias redis. – brock

Respuesta

32

dos razones principales:

  1. múltiples bases de datos son considerados generalmente mal y para ser obsoletas algún día, y tienen algunas penalizaciones de rendimiento, aunque bastante menor.

  2. la razón principal es que redis tiene un solo subproceso, si necesita dos orígenes de datos diferentes, otra instancia de redis mejorará el rendimiento ya que utilizará otra CPU que probablemente tenga, mientras que una instancia siempre utilizará solo una.

  3. Alos diferente instancia de redis puede tener la configuración de persistencia fdiffecten. Por ejemplo un caso sólo puede utilizar la memoria y la otra puede utilizar archivos como almacenamiento Redis Persistence

Luego hay otras ventajas como tener una contraseña diferente de autenticación, las estrategias LRU, etc - que sólo se pueden hacer en el nivel de instancia.

+0

Impresionante - supuse que había una buena razón. Gracias – brock

Cuestiones relacionadas