Deploy Valkey with flags

A managed Valkey instance lives inside a project and is reachable from any container in that project — a Redis-compatible key-value datastore. Choose the cache purpose for data you can afford to lose, or store for persistent workloads.

Updated 12 Aug 20264 min read

A managed Valkey instance lives inside a project and is reachable from any container in that project — a Redis-compatible key-value datastore. Choose the cache purpose for data you can afford to lose, or store for persistent workloads.

Valkey is rolling out gradually. If it is not yet visible for your organisation, contact support to request access.

For the YAML-mode equivalent, see Deploy Valkey with YAML.

Minimal create

reis valkey:create \
  --project my-project \
  --name "Session Cache" \
  --handle session-cache \
  --tier single \
  --purpose cache \
  --memory 256 \
  --regions falkenstein-1

That gets you a single-node Valkey cache with 256 MB of memory. Sensible defaults handle everything else — auth is on with a generated password you can reveal once from the console. Run reis valkey:create with no flags for an interactive prompt.

A persistent, highly available store

The store purpose enables persistence and requires --storage. The ha tier runs a Sentinel topology — your application needs a Sentinel-aware client driver.

reis valkey:create \
  --project my-project \
  --name "Job Queue" \
  --handle job-queue \
  --tier ha \
  --size standard \
  --purpose store \
  --memory 1024 \
  --storage 10 \
  --backup \
  --backup_schedule "0 3 * * *" \
  --regions falkenstein-1

Externally exposed with TLS

Any tier can be exposed at the platform edge on port 6379. External access requires all three of TLS, auth and a non-empty IP allowlist.

reis valkey:create \
  --project my-project \
  --name "Shared Cache" \
  --handle shared-cache \
  --tier single \
  --purpose cache \
  --memory 512 \
  --tls \
  --external \
  --allowed_ips 198.51.100.0/24 \
  --hostnames cache.example.com \
  --regions falkenstein-1

With --tls and no --tls_bundle, the platform issues a TLS bundle and manages it in your vault. To serve your own certificate, pass --tls_bundle <handle> — it must cover every hostname the instance answers to.

Sharded cluster with tuning

The sharded tier runs a cluster topology (minimum 3 shards) — your application needs a cluster-aware client driver. Shards are grow-only in self-service.

reis valkey:create \
  --project my-project \
  --name "Catalog" \
  --handle catalog \
  --tier sharded \
  --size hardened \
  --shards 3 \
  --purpose cache \
  --memory 2048 \
  --maxmemory_policy allkeys-lfu \
  --config tcp-keepalive=300 \
  --config databases=16 \
  --regions falkenstein-1 \
  --regions singapore-1

Flag reference

FlagDescriptionDefault
--nameDisplay name (required)
--handleImmutable handle (required)
--projectProject the instance belongs to
--regions (-r)Region to deploy to — repeatablerequired
--tiersingle, ha or shardedsingle
--purposecache or store — immutable after creationcache
--memoryMemory per node in MB1024
--sizestandard or hardened (ha and sharded tiers)standard
--shardsShard count (sharded tier, minimum 3, grow-only)3
--storageStorage per node in GB — required for --purpose store
--maxmemory_policyEviction policy — defaults from purposeallkeys-lru / noeviction
--configAllowlisted configuration key as KEY=value — repeatable
--auth / --no-authRequire the connection passwordon
--passwordExplicit password — omit and the platform generates onegenerated
--tls / --no-tlsServe TLSoff
--tls_bundleHandle of your own TLS bundle to serveplatform-managed
--external / --no-externalExpose at the platform edge on port 6379off
--allowed_ipsCIDR allowlist — repeatable, required while external is on
--hostnamesCustom hostname — repeatable
--backup / --no-backupDaily backups (store purpose only)off
--backup_scheduleBackup cron schedule — retention is fixed at 7 daily snapshots
--network_policiesNetwork policy handle narrowed to this instance — repeatable

Allowlisted --config keys: tcp-keepalive, timeout, tcp-backlog, databases, loglevel. Unknown keys are rejected naming the key.

Everyday commands

reis valkey:list                          # list instances
reis valkey:show <id>                     # instance details
reis valkey:update <id> --memory 2048     # change a setting
reis valkey:delete <id>                   # terminate (asks for confirmation)

Updates re-apply the full configuration with your change on top; --purpose is immutable and cannot be updated.

Connecting from a container

Once the instance is running, containers in the same project reach it on the internal network at <handle>:6379. The tier decides the client driver: single works with any client, ha needs a Sentinel-aware driver, sharded a cluster-aware one.