Recipes

Valkey

BSD-licensed Redis-wire fork — same redis driver, OKE_STORE_KV_PASSWORD, valkey-server command.

Valkey is the Linux Foundation's BSD-3-Clause fork of Redis, forked after Redis's 2024 license change. Same wire protocol — pin the image and nothing in Flow code moves.

The one rule

Driver id stays redis. Valkey is an image choice, not a driver. REDIS_URL and every KV call through fx.store work exactly as they do against Redis.

Quick start

Pin the image

oke.config.ts
images: {
  "store.kv": "valkey/valkey:8-alpine",
},

Same password contract as Redis

OKE_STORE_KV_PASSWORD=
REDIS_URL=redis://:…@127.0.0.1:6379

Command becomes valkey-server --requirepass "$OKE_STORE_KV_PASSWORD" … — healthcheck uses valkey-cli.

Optional memory caps

Same knobs as Redis: OKE_STORE_KV_MAXMEMORY, OKE_STORE_KV_MAXMEMORY_POLICY.

Required env

VariableRequired?Meaning
OKE_STORE_KV_PASSWORDYes--requirepass for valkey-server
REDIS_URLYes (app)Still redis:// scheme — protocol name, not vendor
OKE_STORE_KV_MAXMEMORYOptionalMemory cap
OKE_STORE_KV_MAXMEMORY_POLICYOptionalEviction policy

Data and backup

The default store.kv recipe declares no named volume — same ephemeral default as Redis.

Keys that must survive go on { durable: true } — a JSONB table on your SQL database. See Store · Durable KV.

Production note

Choose Valkey when RSAL/SSPL managed-service terms on Redis ≥8 matter to your legal posture — BSD-3-Clause carries no such restriction. Feature parity with Redis 7/8 stays close since the fork tracks upstream.

DigitalOcean's managed product moved onto Valkey after Aiven stepped back from Redis — see DigitalOcean Managed Caching.

What the recipe configures

FieldValue
Container port6379
Commandvalkey-server --requirepass … --maxmemory … --maxmemory-policy …
Healthcheckvalkey-cli -a <password> ping, every 5s, 10 retries
Connection URLredis://:pass@host:6379
LicenseBSD-3-Clause

Troubleshooting

Learn more

Next

On this page