/redis-cache-sentinel

Cache com redis com replicação e alta disponibilidade.

Primary LanguageJavaScript

redis-cache-sentinel

Cache redis com replicação e alta disponibilidade. O sistema proposto para este trabalho se encontra na Figura 1

Figura 1 - Arquitetura para o sistema de cache.

Sumário

Instalação & Configuração

Pre-requisitos:

mysql 8.0.27

node v16.13.1

Instalação do Redis

sudo apt install redis-server

Para a configuração da maquina local:

Edite o arquivo /etc/redis/redis.conf

vim /etc/redis.conf

em vez de localhost coloque o ip da maquina local.

bind:  192.168.1.7

para ligar o servidor com as configurações digite:

redis-server /etc/redis.conf

Entrando no cliente do banco de dados redis:

redis-cli -h 192.168.1.7 -p 6379

Alguns comandos que poderá ser executado nesse cliente:

Comando Descrição
ping Verifica se o servidor redis esta online.
set 'chave' 'valor' Cria um novo elemento.
get 'chave' Busca um elemento pela chave
scan 0 Mostra parte dos elementos do redis
info replication Mostra as informações da replication.

Replicando o Redis em outro nó

Editando o arquivo /etc/redis.conf

vim redis.conf

Procure a opção replicaof e troque pelo ip e porta da sua maquina local.

replicaof 192.168.1.7 6379

Execute o programa com o seguinte comando:

redis-server /etc/redis/redis.conf

Colocando Sentinelas

As sentinelas do redis irá ajudar a redirecionar o fluxo de acesso se um nó cair.

Tanto na maquina local como no nó remoto edite o arquivo /etc/sentinelconf:

vim sentinel.conf

e mude o ip e a porta para o ip da maquina local.

sentinel monitor mymaster 192.168.1.7 6379 2

logo a seguir execute o seguinte comando para rodar as sentinelas:

redis-sentinel sentinel.conf

Projeto Node

Para usar o projeto node entre no repositorio e digite o seguinte comando

npm install

Terá que mudar o ip e a porta nos arquivos index.js, populando_banco.js e teste_1.js

Vocẽ terá que ter uma tabela chamada redis_sd no seu banco de dados, configure os arquivos populando_banco.js e index.js e logo em seguida execute:

node populando_banco.js

para inserir valores testes na tabela redis_sd no mysql.

E para executar

node index.js