# 6379 - Redis

## ¿Qué es y cómo funciona?

Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes pero que opcionalmente puede ser usada como una base de datos durable o persistente. Está escrito en ANSI C por Salvatore Sanfilippo, quien es patrocinado por Redis Labs

## Enumeración

```
nc -vn <IP> <port> # conectarnos mediante netcat
redis-cli -h <IP> # mediante el cliente de redis
```

### Comandos redis-cli

#### Autenticar nos

Por defecto en redis se puede acceder sin credenciales pero obviamente habrá veces que tendremos credenciales, se haría con el comando de abajo pero el espacio es un + `AUTH user+password` .&#x20;

Normalmente la password la podríamos encontrar en el archivo redis.conf como "requirepass" y el usuario por defecto es `default`. Y el usuario puede estar en la variable "masteruser"

```
AUTH <username> <password>
```

#### Comandos autenticados

```
SELECT 0
[ ... Indicate the database ... ]
KEYS * 
[ ... Get Keys ... ]
GET <KEY>
[ ... Get Key ... ]
```

**Ejemplo**

En este caso el SELECT 0 tiene 4 keys en la bbdd 0 pero podría ser que fuera la 1 en otra ocasión, por defecto redis utiliza la 0.

![](https://1367155054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqCnBDYTntMpZLlwqTWcg%2Fuploads%2FBAfX0OOaYLk5SLLi4jyO%2Fimagen.png?alt=media\&token=77cafb29-47c1-4b33-9d39-380a4d8eb525)

#### Type

Depende del tipo de KEY se tiene que poner TYPE para saber si son un key, una lista o un hash, hay diferentes maneras de abrir dependiendo de el tipo.

```
TYPE <KEY>
[ ... Type of the Key ... ]
LRANGE <KEY> 0 -1
[ ... Get list items ... ]
HGET <KEY> <FIELD>
[ ... Get hash item ... ]
```

**Ejemplo**

Para listar las KEYS.

![](https://1367155054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqCnBDYTntMpZLlwqTWcg%2Fuploads%2FHFsvb42PO0ZMdFawfLlT%2Fimagen.png?alt=media\&token=d6ef2ebd-e93e-4cd1-bd9d-d3024f1de50c)

Eso sale por que es una lista, y no se puede ver con GET, sino con `lrange <key> 0 -1`

<figure><img src="https://1367155054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqCnBDYTntMpZLlwqTWcg%2Fuploads%2F3fyiZgOdpHqI6tKwx4e0%2Fimagen.png?alt=media&#x26;token=f43152c5-a3a8-45a2-b467-1fc1e09b35c4" alt=""><figcaption></figcaption></figure>
