Skip to content

Redis (Valkey)

FluxNow provisions a dedicated Valkey instance — a Redis-compatible, BSD-licensed in-memory datastore — for your app when you enable it. It works with any Redis client (ioredis, node-redis, BullMQ, Sidekiq, redis-py, Celery, Spring Data Redis, …).

  • Valkey 8.x — Redis-compatible (SET/GET, lists, pub/sub, Lua, BullMQ, etc.)
  • A dedicated instance per app — not shared with other apps or customers
  • Durable — append-only file (AOF) on a persistent volume; data survives pod restarts
  • REDIS_* injected into your container automatically — nothing hardcoded

Add redis.enabled: true to your fluxnow.yaml.

For a single-service repo, at the top level:

fluxnow.yaml
version: v1
kind: Service
metadata:
name: my-app
spec:
runtime: node
port: 3000
redis:
enabled: true

For a monorepo, under the app’s spec (each app opts in independently):

fluxnow.yaml
version: v1
kind: Monorepo
metadata:
name: my-monorepo
apps:
- name: api
path: apps/api
spec:
runtime: node
port: 3000
redis:
enabled: true

Absent or false means no Redis is provisioned — the setting is fully opt-in.

FluxNow injects the connection details into your container at deploy time. Read them straight from the environment — nothing is hardcoded:

VariableDescription
REDIS_HOSTIn-cluster hostname of your instance
REDIS_PORT6379
REDIS_PASSWORDAuto-generated, stored in the secrets manager
REDIS_TLSfalse (in-cluster traffic is plaintext, one hop)
REDIS_URLredis://:$REDIS_PASSWORD@$REDIS_HOST:$REDIS_PORT — for url-form clients
KV_URLSame URL, for Vercel KV / Upstash-style code
SPRING_DATA_REDIS_URLSame URL, for Spring Boot 3.x
REDIS_USERNAMEEmpty (default-user auth)

Most clients read REDIS_URL directly; discrete-form clients (BullMQ, Laravel) can use REDIS_HOST / REDIS_PORT / REDIS_PASSWORD. You never set these yourself.

The v1 instance is fixed at 32 MB with the noeviction policy — writes fail loudly when full rather than silently dropping a cached value, a lock, or a queued job. Larger sizes and eviction tuning are on the roadmap.

Redis here is durable, not just a cache: it uses AOF (append-only file) on a persistent volume, so keys survive a pod restart or reschedule. (Cross-node high-availability — replicas + failover — is a later tier.)

  • Caching — HTTP response caches, computed-value caches
  • Sessions — server-side session storage
  • Queues — background job queues (BullMQ, Sidekiq, RQ, Celery, …)
  • Pub/sub — real-time messaging between application instances

Redis is not provisioned for per-PR preview environments — preview pods are not wired to a Valkey instance. Provisioning happens for your staging (and production) environment. If you need Redis in previews, namespace your keys and point at the staging instance, or track it in the roadmap.