Skip to content

Key Value (Redis-compatible) ​

Infrly's managed Key Value service runs Valkey — a BSD-licensed, wire-protocol-compatible fork of Redis. Every Redis client library (redis-py, ioredis, go-redis, ...) works against it unmodified; nothing about your app's code needs to know it isn't talking to Redis itself.

Good for caching, session storage, rate limiting, and anything else you'd normally reach for Redis for. It's configured to evict least-recently-used keys once full rather than refuse writes, which is right for a cache — if you need data that's never silently dropped, use PostgreSQL instead.

Create an instance ​

New Service → Key Value, pick a plan, and create it. Like PostgreSQL, there's no free plan — a running instance and its storage cost real resources for as long as it exists. See Resource Plans for specs and pricing.

Networking mode ​

  • Private (the default) — reachable only from other services in the same project, at the internal address shown under Connection details on the service's page. This is enough for almost every use case: your web service and its cache living in the same project.
  • Public — additionally exposes the instance on its own public hostname (<name>-kv.infrlyapp.com) on the standard Redis port (6379), for access from outside the project — a local dev environment, a different project, a one-off script. Toggle this on the service's settings at any time.

Authentication is always required, in either mode — a password is generated when the instance is created and enforced on every connection, regardless of networking mode. Private networking is a second, independent layer on top of that, not a substitute for it.

Connect to it ​

Open the instance's Connect tab for its host, port, and password, or the full redis://:<password>@<host>:6379 connection string.

With Public networking, connections use TLS and are routed by hostname (SNI), so your client must send the hostname. Most Redis libraries do this automatically with a rediss:// URL; with redis-cli, pass it explicitly:

redis-cli --tls --sni <host> -h <host> -p 6379 -a <password>

Without --sni you'll see Protocol error, got "H" as reply type byte. As with PostgreSQL, prefer a service reference over copying values by hand:

REDIS_URL=${{my-cache.URL}}

Next ​

Infrly — You commit. We ship. Need something custom? support@infrlyapp.com