# Redis

## Passo a Passo: Configuração Completa

#### Passo 1 — Criar o Ativo (Asset)

1. Acesse **Console → Ativos → Lista de Ativos**
2. Clique em **"+ Criar"** e selecione a categoria **Banco de Dados → Redis**
3. Preencha os campos:

| Campo      | Valor Exemplo     | Observação                  |
| ---------- | ----------------- | --------------------------- |
| Nome       | Redis-Producao-01 | Nome identificador do ativo |
| IP/Host    | 192.168.1.50      | Endereço do servidor Redis  |
| Porta      | 6379              | Porta padrão do Redis       |
| Plataforma | Redis             | Selecionar plataforma Redis |
| Nó         | /Default          | Nó organizacional           |
| Usar SSL   | ✅ ou ❌            | Marque se Redis usa TLS     |

4. Clique em **Enviar** para salvar

#### Passo 2 — Adicionar Conta (Account)

1. Acesse o ativo Redis criado → aba **Contas**
2. Clique em **"+ Criar"**
3. Preencha:

| Campo   | Valor       | Observação                                        |
| ------- | ----------- | ------------------------------------------------- |
| Nome    | redis-admin | Identificador da conta                            |
| Usuário | default     | Usuário padrão do Redis (ou ACL user no Redis 6+) |
| Senha   | ●●●●●●●●    | Senha do requirepass ou ACL                       |

> **Nota sobre Redis ACL (6+):** A partir do Redis 6, é possível criar múltiplos usuários com permissões granulares via ACL. O campo "Usuário" aceita o nome do usuário ACL, e a senha deve corresponder à senha configurada para aquele usuário.

4. Clique em **Enviar**

#### Passo 3 — Criar Autorização (Asset Permission)

1. Acesse **Console → Permissões → Permissões de Ativos**
2. Clique em **"+ Criar"**
3. Configure:

| Campo              | Valor                             |
| ------------------ | --------------------------------- |
| Nome               | Acesso-Redis-Prod                 |
| Usuários           | Selecionar usuário(s) ou grupo(s) |
| Ativos             | Redis-Producao-01                 |
| Contas             | redis-admin                       |
| Ações              | Conectar, Copiar/Colar            |
| Data de início/fim | Conforme política                 |

4. Clique em **Enviar**

***

### Passo 4 — Conectar ao Redis

Após a configuração, o usuário autorizado pode acessar o Redis pelo **Workbench**:

#### Método 1: DB Client (redis-cli)

1. Acesse **Workbench** com o usuário autorizado
2. Localize o ativo **Redis-Producao-01**
3. Clique em **DB Client**
4. O PAM fornecerá os parâmetros de conexão:

```bash
redis-cli -h <Magnus_IP> -p <Magnus_Port> -a <senha_proxy>
```

#### Método 2: Web CLI

1. No **Workbench**, localize o ativo Redis
2. Clique em **Web CLI**
3. Um terminal Redis abrirá diretamente no navegador
4. Execute comandos Redis normalmente:

```redis
PING
SET chave "valor"
GET chave
INFO server
KEYS *
```

> **Dica:** O Web CLI é o método mais prático para acesso rápido, sem necessidade de cliente local.

#### Método 3: RemoteApp

1. No **Workbench**, clique em **RemoteApp**
2. Uma aplicação de gerenciamento Redis (ex: Another Redis Desktop Manager) será aberta via sessão remota
3. A conexão é estabelecida automaticamente com as credenciais configuradas

#### Método 4: DB Guide

1. No **Workbench**, clique em **DB Guide**
2. O PAM exibirá as instruções de conexão manual
3. Use as informações fornecidas para conectar via seu cliente preferido

***

### Passo 5 — Verificação e Testes

Após a configuração, execute os seguintes testes:

| Teste           | Comando / Ação                   | Resultado Esperado       |
| --------------- | -------------------------------- | ------------------------ |
| Conectividade   | `redis-cli -h <IP> -p 6379 ping` | Resposta: PONG           |
| Autenticação    | `AUTH <senha>`                   | Resposta: OK             |
| Leitura/Escrita | `SET test "hello" → GET test`    | Resposta: "hello"        |
| Web CLI         | Acessar via Workbench            | Terminal Redis funcional |
| Auditoria       | Console → Auditoria → Sessões    | Sessão Redis registrada  |

***

### Troubleshooting Redis

| Problema                     | Causa Provável                     | Solução                                              |
| ---------------------------- | ---------------------------------- | ---------------------------------------------------- |
| Erro "NOAUTH"                | Senha não fornecida                | Verificar campo de senha na conta do ativo           |
| Erro "ERR invalid password"  | Senha incorreta                    | Verificar requirepass ou ACL password                |
| Connection refused           | Redis não escutando na interface   | Alterar `bind` para 0.0.0.0 no redis.conf            |
| Connection timeout           | Firewall ou rede                   | Liberar porta 6379 entre PAM e Redis                 |
| Erro "DENIED" (Redis 6+ ACL) | Usuário sem permissão para comando | Verificar ACL do usuário no Redis                    |
| Protected mode ativo         | Conexão remota sem senha           | Configurar requirepass ou desabilitar protected-mode |
| Usuário não vê o ativo       | Falta autorização                  | Criar Asset Permission para o usuário                |

> **Nota:** O Redis é um banco de dados in-memory — diferente dos bancos SQL, ele não possui tabelas ou schemas. Os comandos auditados pelo JumpServer incluem todas as operações Redis (GET, SET, DEL, KEYS, etc.).


---

# 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://wiki.datadike.com/integracoes/databases/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.
