A instalação de várias instâncias de redis no servidor é uma boa ideia?

3

Como o título diz. Estou pensando em criar um farm de serviços de estado usando redis e gostaria de lidar com várias "regiões" - assim, se um serviço ficar inativo, apenas uma única região deve ser afetada. Isso pode parecer uma boa ideia inicialmente, mas eu prefiro saber de antemão se:

  1. Instalar várias instâncias lado a lado de redis é uma boa idéia?
  2. O Redis armazena apenas dados na RAM?
  3. Quanta RAM é um típico instância de redis usa? (Percebo que isso pode ser uma questão retórica, mas eu adoraria alguns palpites)
por Maciek 10.07.2014 / 11:16

2 respostas

8

No Stack Exchange, executamos várias instâncias do Redis em um único servidor e nunca vimos nenhum problema:

[kbrandt@ny-redis01: ~] ps -e -o vsz,cmd | grep redis-server | sort -nr
15943668 /usr/sbin/redis-server *:6382
14966708 /usr/sbin/redis-server *:6379
7878376 /usr/sbin/redis-server *:6380
2692092 /usr/sbin/redis-server *:6384
1855480 /usr/sbin/redis-server *:6383
1002304 /usr/sbin/redis-server *:6381
377072 /usr/sbin/redis-server *:6385
374780 /usr/sbin/redis-server *:6387
 50992 /usr/sbin/redis-server *:6388
 50992 /usr/sbin/redis-server *:6378

O uso da memória realmente dependerá da quantidade de dados que você coloca em cada instância. Também pode haver alguma sobrecarga de fragmentação (você pode ver a taxa de fragmentação com o comando redis info ). Para estimar sua capacidade, você olha para "Qual é a pegada de memória do Redis?" do faq . Não se esqueça de definir /proc/sys/vm/overcommit_memory para 1, conforme indicado na mesma pergunta.

    
por 10.07.2014 / 16:14
0
  1. Como @faker disse, isso depende do caso de uso. Se você estiver olhando apenas para armazenar em cache as coisas localmente (no servidor de aplicativos), isso pode funcionar. No entanto, se você quiser ter uma funcionalidade compartilhada de cache / armazenamento de dados, eu usaria uma solução desacoplada. Além disso, o acoplamento geralmente é desaprovado, pois pode inibir a escalabilidade.

  2. Sim - os dados no Redis são armazenados e servidos inteiramente da RAM. Você tem a opção, no entanto, de manter os dados em um armazenamento durável.

  3. O processo do Redis é muito leve, ou seja, < 2MB quando carregado. Qualquer RAM consumida acima é para armazenamento de dados e isso depende de vários fatores, incluindo: volume de dados, conteúdo de dados, o "esquema" do seu espaço de chaves e as estruturas de dados que você usa.

por 21.07.2014 / 14:21