All docs

Databases

Redis

Managed Redis for caching, sessions, and real-time data.

Creating a Redis instance

bash
compos database create --type redis --name cache

A `REDIS_URL` environment variable is added to your project automatically.

Common use cases

Session storage

ts
import Redis from "ioredis";

const redis = new Redis(process.env.REDIS_URL);

// Store session
await redis.setex(`session:${id}`, 3600, JSON.stringify(data));

// Retrieve session
const session = await redis.get(`session:${id}`);

Caching

ts
async function getCached(key: string, ttl: number) {
  const cached = await redis.get(key);
  if (cached) return JSON.parse(cached);

  const data = await fetchExpensiveData();
  await redis.setex(key, ttl, JSON.stringify(data));
  return data;
}

Configuration

Redis instances support clustering and eviction policies:

ts
databases: {
  cache: {
    type: "redis",
    plan: "starter",
    maxMemory: "256mb",
    evictionPolicy: "allkeys-lru",
  },
}