# Infra - Recriação do Redis

#### As Funções do Redis no Z-PRO

**1. Gerenciamento de Estado (State) e Sessões da API**

* **O Problema:** No Z-PRO, como você pode ter dezenas de conexões do WhatsApp e centenas de usuários ativos, o sistema precisa saber instantaneamente quem está logado, qual o estado da conexão e em qual ponto de um fluxo de chatbot o cliente parou.
* **A Solução com Redis:** O Redis armazena a **"sessão"** de cada conexão de WhatsApp e o **"estado"** atual de cada conversa.

**2. Cache de Dados Frequentes**

* **O Problema:** Buscar configurações, permissões de usuário, ou a definição de um fluxo de chatbot do banco de dados principal é lento.
* **A Solução com Redis:** Os dados acessados constantemente (como as regras de um chatbot ou a licença de um cliente) são copiados do banco de dados para o Redis. Dessa forma, o Z-PRO consegue acessá-los de forma muito mais rápida, refletindo em um melhor desempenho e velocidade para os usuários do sistema.

<figure><img src="/files/anFvHBY1ToxN1L9I8opO" alt=""><figcaption></figcaption></figure>

## Vídeo tutorial:

{% embed url="<https://youtu.be/EasbF99OWB8>" %}

## OPÇÃO 1: Recriar Redis pelo terminal

#### 1 - Acessar o terminal do seu servidor

Caminho para servidores hospedados na hostinger:

{% embed url="<https://hpanel.hostinger.com/>" %}

<figure><img src="/files/2d26sJXzdyZkjqRnEDEX" alt=""><figcaption></figcaption></figure>

#### 2 - Executar o zpro

```
sudo chmod +x ./zpro_passaporte_shell/zpro
cd ./zpro_passaporte_shell
sudo ./zpro
```

<figure><img src="/files/IuzI8bvqdQucmRm2K3Wb" alt=""><figcaption></figcaption></figure>

#### 3 - Digitar 8

O sistema irá listar as instâncias instaladas e pedir para digitar o número da instância em que quer recriar o redis, na maioria dos casos, vai aparecer apenas uma instância, nesse caso, digite 1 para continuar o processo

Após a finalização do processo, aperte crtl + c para voltar na página inicial do terminal

#### 4 - Reiniciar o sistema&#x20;

a) Entre no terminal do seu servidor

b) Faça login com o usuário deployzdg

```
su deployzdg
```

c) Execute os comandos abaixo

```
pm2 flush 
pm2 restart all 
pm2 log
```

*Exemplo de resposta após o pm2 flush*

<figure><img src="/files/oZArPHxWfcKLDPyNE7xy" alt=""><figcaption></figcaption></figure>

*Exemplo de resposta após o pm2 restart all*

<figure><img src="/files/CZL1KijeTgdVMJK1On5s" alt=""><figcaption></figcaption></figure>

*Exemplo de resposta após o pm2 log*

<figure><img src="/files/ClatcK9XxHVHdlY87RFw" alt=""><figcaption></figcaption></figure>

## OPÇÃO 2: Recriar Redis pelo Portainer

#### 1 - Acessar o portainer pelo navegador

http\://\[seu\_endereco]:9000

Fazer login com usuário e senha

<figure><img src="/files/uYk2Jlx9usn5mOXuCZit" alt=""><figcaption></figcaption></figure>

usuário: admin ( esse é o padrão para todas as instalações, caso você não tenha alterado)

senha: (a que foi informada no dia da instalação do zpro, se precisar, é possível redefinir a senha pelo terminal)

> OPCIONAL - CASO PRECISE REDEFINIR A SENHA
>
> Para alterar a senha, volte ao terminal com o usuário raiz (root) e execute os comandos abaixo
>
> `docker ps`
>
> Procure por um contêiner com a imagem `portainer/portainer-ce` (ou similar) e anote o nome do contêiner. Exemplo: \[portainer-x]  &#x20;
>
> Execute os comandos abaixo, substituindo o \[portainer-x] pelo nome que você anotou
>
> `docker stop [portainer-x]`
>
> `docker run --rm -v portainer_data:/data portainer/helper-reset-password`

> Verifique a Saída:
>
> Se for bem-sucedido, o terminal mostrará uma mensagem como esta, fornecendo a nova senha:
>
> ```
> 2020/06/04 00:13:58 Password successfully updated for user: admin
> 2020/06/04 00:13:58 Use the following password to login: Aqui_EstA_a_Senha
> ```
>
> Reinicie o container novamente (substituindo o \[portainer-x] pelo nome que você anotou)
>
> `docker start [portainer-x]`

Após fazer o login, entre dentro do docker onde está instalado o zpro

<figure><img src="/files/xH8eXZpbn97CH0MDP4m6" alt=""><figcaption></figcaption></figure>

Acesso o menu "containers" e clique no container em que está instalado o redis

<figure><img src="/files/4llVzgFVhtaOX94GobF4" alt=""><figcaption></figcaption></figure>

Clique em "Recreate"

<figure><img src="/files/AqUrR7JiTf9031ePVmzu" alt=""><figcaption></figcaption></figure>

Marque a opção e "Re-pull image" e confirme o processo clicando no botão "Recreate"

<figure><img src="/files/lZllLK8XZVG9WSJnrUXf" alt=""><figcaption></figcaption></figure>

Após esse processo, o portainer efetuará a recriação do redis para a última versão disponível.

Reinicie seu zpro pelo terminal, seguindo o passo-a-passo:

{% content-ref url="#id-4-reiniciar-o-sistema" %}
[#id-4-reiniciar-o-sistema](#id-4-reiniciar-o-sistema)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ajuda.zdg.com.br/avancado-recursos-tecnicos/boas-praticas-de-infraestrutura/infra-recriacao-do-redis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
