# Redis

Every Koo [app](/docs/apps/apps-and-services) can include a managed Redis service — a private cache that runs inside your app, next to your web service. Koo provisions it, stores the credentials, and injects the connection into your other services.

## Your free Redis

Your account includes one Redis at 0.5 vCPU / 1 GiB (the free unit) — free forever, no card required. It sits alongside your free web service and free Postgres; see [Free tier & pricing](/docs/get-started/free-tier) for the full allowance.

The allowance is a price deduction, not a fixed slot. If you later give your Redis more CPU or memory, you pay the difference — its new price minus the free unit's — and the first 0.5 vCPU / 1 GiB stays free. Downsize back to the free unit and the price returns to $0.

> **Note:**
>
> The free allowance applies to your primary account (your first account). Until self-service checkout ships, the Free plan caps Redis at exactly the allowance — you can run your free 0.5 vCPU / 1 GiB Redis today, but upsizing beyond it requires a paid plan.

## Add Redis to an app

1. 
2. 
3.

Your Redis is private to its app. It has no public endpoint and is reachable only from the other services in the same app — there is nothing to firewall or password-protect yourself.

## Connect from your app

Koo exposes the connection as an environment variable on your other services — `REDIS_URL` by default. Reference the Redis service from another service's [environment](/docs/configuration/env-and-secrets), and Koo injects the full connection URL at runtime. Credentials never live in your repo or your image.

In your code, read the variable and connect as you would to any Redis:

```js
import { createClient } from "redis";

const redis = createClient({ url: process.env.REDIS_URL });
await redis.connect();
```

If you rotate or recreate the service, the injected value follows — your code only ever reads `REDIS_URL`.

## Resources & storage

You give a Redis explicit CPU and memory, like any service. Your data lives on a persistent disk — a separate volume provisioned with the service — so it survives restarts. Some example combinations:

| vCPU | Memory | Price |
| --- | --- | --- |
| 0.25 vCPU | 512 MiB | $5/mo |
| 0.5 vCPU | 1 GiB | $10/mo |
| 1 vCPU | 2 GiB | $20/mo |
| 2 vCPU | 4 GiB | $40/mo |
| 4 vCPU | 8 GiB | $80/mo |

Pick any CPU + memory (memory up to 8 GiB per vCPU).

You can resize a service at any time. The free deduction stays applied: after an upsize, the service bills its price minus the free unit's.

## What Redis on Koo is for

Redis on Koo is an in-app dependency, scoped to one app:

- 
- 
-

Because each Redis belongs to a single app and is not publicly reachable, it is not a shared cluster or an externally accessible cache.

## Coming soon

An in-console cache console (Coming soon) will let you inspect keys and run bounded commands on your Redis directly from the Koo console, with every action audited.
