KV Store
A KV store is a managed Redis instance. You create one, and about 30 seconds later you have a running Redis you can write to — no server to size, no redis.conf, no failover to wire up.
It is the right tool for sessions, caches, rate limiters, queues, feature flags, and anything else you’d reach for Redis to do.
| Tier | Memory | Topology | Price |
|---|---|---|---|
| Free | 256 MB | Standalone | $0 |
| Starter | 1 GB | Replicated + automatic failover | $10/mo |
| Pro | 4 GB | Replicated + automatic failover | $40/mo |
Paid tiers run Redis with a replica and sentinels, so a node failure promotes the replica instead of taking your store down. The free tier is a single node — fine for development, not for anything you’d be paged about.
Paid stores are billed as a flat monthly price per store, prorated from the day you create them. They appear on your invoice as their own line (“PandaStack KV — Starter”), separate from compute and bandwidth.
Creating one
Section titled “Creating one”From the dashboard, open KV Stores → New KV store, pick a name and a tier, and you’re done. Or via the API:
curl -X POST https://api.pandastack.io/v1/kv \ -H "Authorization: Bearer $PANDASTACK_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"my-cache","tier":"kv-free","visibility":"public"}'The store starts as queued, moves to deploying, and reaches running in roughly 30 seconds. Names get a short random suffix (my-cache becomes my-cache-4e8aad) so they never collide.
Access: public or private
Section titled “Access: public or private”You choose this at creation:
- Public — the store gets a TLS endpoint at
<name>.db.pandastack.appreachable from anywhere. Use this when something outside PandaStack needs to connect. - Private — no public endpoint is issued. Only your apps running on PandaStack can reach it, over the internal network.
If your app runs on PandaStack and nothing else needs access, choose private. It’s faster (no TLS handshake, no proxy hop) and there’s no public endpoint to worry about. See Internal networking.
Connecting from your app
Section titled “Connecting from your app”Link a store to a project and PandaStack injects KV_URL into that project’s environment, then redeploys it. Your code becomes:
import { createClient } from "redis";const kv = createClient({ url: process.env.KV_URL });await kv.connect();No connection string to copy, no secret to manage. When you unlink the store, the variable is removed and the app redeploys again.
For connecting from outside PandaStack — and for the one client that cannot connect — see Connecting to a KV store.
Free-tier lifecycle
Section titled “Free-tier lifecycle”Free stores expire 30 days after you create them, regardless of how much you use them. At that point the store is suspended (your data is kept) and you get an email. If you don’t upgrade within 14 more days, the store and its data are permanently deleted.
Upgrading to a paid tier at any point before the purge cancels the clock and keeps everything. Full timeline: Free-tier lifecycle.
Limits
Section titled “Limits”- One free KV store per organization. Paid stores are unlimited.
- Memory is capped at the tier’s size; Redis evicts per its
maxmemorypolicy when full. - Bandwidth in and out of a KV store counts toward your organization’s monthly bandwidth allowance.