Redis
Every Koo app 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 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.
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
- Open your app and add a service of type
redis. - Pick its CPU and memory. The free unit (0.5 vCPU / 1 GiB) is covered by the free allowance.
- Save. Koo provisions the instance; you can watch it come up on the app's status.
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, 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:
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 |
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:
- Caching — keep hot reads off your Postgres database.
- Queues and background jobs — back a job library with a Redis your app can always reach.
- Sessions and rate limiting — fast shared state across your web service's replicas.
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.