# Redis

Source : https://webgune.cloud/eu-eu/docs/db-redis · Mis à jour le 2026-10-27

# Redis

Un store en mémoire pour tout ce qui doit être rapide et transitoire : cache, sessions, files d'attente, pub/sub.

## Chaîne de connexion

```bash
REDIS_URL=redis://host:6379
# avec mot de passe
REDIS_URL=redis://:password@host:6379
```

## ioredis (Node.js)

```typescript
import Redis from "ioredis";

const redis = new Redis(process.env.REDIS_URL!);

await redis.set("session:abc", JSON.stringify({ userId: 42 }), "EX", 3600);
const session = await redis.get("session:abc");
```

## Cache applicatif

```typescript
async function getUser(id: string) {
  const cached = await redis.get(`user:${id}`);
  if (cached) return JSON.parse(cached);

  const user = await db.user.findUnique({ where: { id } });
  await redis.set(`user:${id}`, JSON.stringify(user), "EX", 300);
  return user;
}
```

## File d'attente légère (pub/sub)

```typescript
// producteur
await redis.publish("jobs", JSON.stringify({ type: "send-email", to }));

// consommateur
const sub = new Redis(process.env.REDIS_URL!);
sub.subscribe("jobs");
sub.on("message", (_channel, payload) => handleJob(JSON.parse(payload)));
```

> Redis est en mémoire. Sans persistance particulière, une donnée qu'on ne peut recréer ailleurs ne doit jamais y vivre seule : une session utilisateur se régénère, un solde de compte non.
