Skip to content

Redis Cloud alternatives: pay for the modules, or stop paying for them

11 min readRedisValkeyComparisonPricingDatabases

Short version: Redis Cloud is priced for the things only Redis Ltd. can sell you: the search, JSON, time series and probabilistic modules, vector sets, Active-Active geo-replication, and a 99.999% SLA on the Pro tier. If your application depends on any of those, stay and pay. If what you actually run is a cache, a session store, a rate limiter, or a job queue, you are paying the module premium for a key-value store, and a flat-priced managed Redis 7.2 or Valkey 9 does the same job at a number that does not move. Layerbase runs both on the Free tier.

Let me be fair about the company first. Redis Ltd. employs most of the people who build Redis, operates the hosted version competently on three clouds, and the module ecosystem is genuinely theirs. RediSearch, RedisJSON, and RedisTimeSeries are real engineering, and if your product is built on them, no fork replaces them. This post is not an argument that Redis Cloud is bad. It is an argument that its pricing is shaped around a feature set most Redis users never touch.

The price ladder

Verified 2026-09-06 from redis.io/pricing:

TierPriceWhat you get
Free$0Up to 30 MB, shared deployment, one database, best-effort SLA, community support
Essentialsfrom $0.007/hour, about $5/month minimum250 MB to 100 GB, shared deployment, one database, SAML SSO, RBAC, encryption in transit and at rest, up to 99.99% SLA. Redis Flex at 10% RAM for the lowest cost
Profrom $0.014/hour, $200/month minimum, first $200 freeDedicated deployment, multiple databases, Active-Active, auto-tiering, private connectivity, up to 99.999% SLA

The Free tier has two limits the pricing page does not lead with. When I ran the free-tier comparison earlier this year, the numbers that ended a free Redis Cloud database first were 30 concurrent connections and 100 operations per second, not the 30 MB. A serverless app with a connection per invocation hits 30 connections before it hits 30 MB. I am not going to restate that whole post; the point is that "free" here is a demo, not a development environment.

Essentials is the tier most small teams actually land on, and its floor is fair: about $5 a month for 250 MB, billed hourly, with the enterprise-shaped extras (SSO, RBAC, at-rest encryption) included even at the bottom. That is a good deal for what it is. The number that matters is where the ladder goes next: Pro starts at $200 a month, and it is the first rung where you get more than one database in the subscription.

Where the price actually goes

Redis Cloud's price is the module story. What separates it from every other hosted Redis is not the cache; it is the things you can only get from Redis Ltd.:

  • Search and query, a secondary index with full-text and vector search over your keys
  • JSON, documents as native values with path operations
  • Time series and the probabilistic structures (Bloom, Cuckoo, Count-Min, Top-K)
  • Vector sets, the Redis 8 addition that stores embeddings as a native type
  • Active-Active, CRDT-based geo-replication where every region accepts writes
  • Redis Flex, RAM plus SSD tiering that brings the per-gigabyte price down at scale

If you use two of those, Redis Cloud is the correct product and this post is not for you.

If you use none of them, look at what you are paying for. A GET, a SET with EX, an INCR with a PEXPIRE, an LPUSH and a BRPOP. That is the whole surface of a cache, a session store, a rate limiter, and a queue, and it is the same surface Redis had in 2015. Every hosted Redis on earth serves it identically, including the one that costs nothing.

What Layerbase does differently

Redis and Valkey are on the Free tier. Free is $0 with no card: 2 databases, 5 GB, no command meter, no connection cap you will notice at side-project scale. A free database sleeps after 15 idle minutes and wakes on the next connection. Solo is $5/month for 2 databases (one of them always-on) and 10 GB. Pro is $15/month for up to 10 databases, 25 GB, and every engine we host, which is where the Postgres and the Meilisearch next to your cache live on the same bill. Add $10/month pool blocks on Pro if the pool gets tight.

Two engines, versions stated plainly. Our Redis is pinned at 7.2. That is the last version before the March 2024 license change to SSPL and RSALv2, and while Redis 8 later moved to AGPLv3, we have not moved with it. Valkey, the Linux Foundation fork of that same 7.2 line, is on 9.0. For new work I recommend Valkey: same wire protocol, same clients, BSD license, and it is where the new engineering is landing. Redis vs Valkey has the longer version of that argument.

TLS everywhere, plus HTTP. Every Redis-family database has a rediss:// endpoint and an Upstash-compatible REST endpoint, so @upstash/redis and anything running on an edge runtime that cannot hold a TCP socket reads and writes the same keys as ioredis and redis-cli.

A queue you do not buy separately. Every Valkey database carries vqueue, an HTTP webhook queue that speaks the @upstash/qstash client's API. Scheduled deliveries, retries, a dead-letter queue, no second vendor.

Persistence and backups. RDB snapshotting is on by default on every Redis-family database, including free ones, on the stock save schedule: a snapshot after fifteen minutes with one change, five minutes with ten, or one minute with ten thousand. AOF is off, so a crash can lose the writes since the last snapshot, which is the same trade a default Redis makes. Paid plans add scheduled snapshots, 7-day rolling on Solo and 30-day on Pro, with one-click restore.

Being straight about what we do not have

No modules. If you FT.SEARCH, JSON.GET, or TS.ADD today, those commands do not exist on our Redis 7.2 or on Valkey 9.0. Valkey has its own JSON and search modules in development, and I am not going to claim them until they are on our image and verified.

No Active-Active. A database on Layerbase is one primary in one region. If you need writes accepted in two continents with conflict-free merge, that is a Redis Enterprise feature and there is no honest substitute for it in a $15 plan.

No 99.999% SLA, no RBAC, no SAML. We give you TLS, generated credentials, IP allowlists, and per-user network isolation on every tier. Those are the security basics; they are not the enterprise controls Essentials and Pro ship.

Redis Cloud's Pro tier is also a real dedicated deployment. Our shared plans are a pool. For a cache serving a few thousand requests a second, the pool is fine. For a cache doing 100,000 ops per second across a fleet, a Dedicated server from $35 a month is the honest recommendation, and above that, Redis Cloud Pro probably still is.

The move, with real commands

Redis Cloud gives every database a public TLS endpoint, which makes leaving it a plain copy.

1. Find the endpoint. In the Redis Cloud console, open the database and copy the public endpoint and default user password. It is a rediss:// string on a redis-cloud.com hostname.

2. Create the destination. Make a Valkey database (or Redis, if you have a reason to stay on 7.2) on Layerbase Cloud. In the create flow, pick Migrating from another platform, choose Redis, and paste the string. The wizard reads your keyspace once with a non-blocking SCAN and copies every key, type, and remaining TTL into the new database. Nothing is written back to Redis Cloud.

3. Or copy it by hand. The same thing from your terminal, if you prefer to watch it happen. One warning first: DUMP returns a binary payload, and the obvious redis-cli loop that stuffs it into a shell variable mangles it, so RESTORE rejects every key with a checksum error. A dozen lines of ioredis keep the bytes intact:

bash
npm i ioredis
SRC='rediss://default:<password>@redis-12345.c1.us-east-1-2.ec2.redis-cloud.com:12345' \
DST='rediss://default:<password>@<host>.cloud.layerbase.dev:6379' \
node -e '
const Redis = require("ioredis")
const src = new Redis(process.env.SRC), dst = new Redis(process.env.DST)
;(async () => {
  let cursor = "0", n = 0
  do {
    const [next, keys] = await src.scan(cursor, "COUNT", 500)
    for (const key of keys) {
      const [dump, ttl] = await Promise.all([src.dumpBuffer(key), src.pttl(key)])
      if (dump) { await dst.restore(key, ttl > 0 ? ttl : 0, dump, "REPLACE"); n++ }
    }
    cursor = next
  } while (cursor !== "0")
  console.log(`copied ${n} keys`)
  await src.quit(); await dst.quit()
})()'

SCAN, never KEYS *, on a live database. DUMP and RESTORE preserve each value's type and encoding, the PTTL keeps expiries intact, and REPLACE makes the script safe to re-run. A Valkey 9 target reads a Redis 7.2 payload without complaint. Tested against a Valkey 9 pair: strings containing NUL bytes, hashes with per-field TTLs, lists, sets, sorted sets, and a 90-second key expiry all came across byte for byte, and running it twice is safe.

4. Swap the URL. Change REDIS_URL in your environment to the new rediss:// string and redeploy. ioredis, node-redis, redis-py, BullMQ, and @upstash/redis against the REST endpoint all keep working. One thing to check: if your client sets a TLS servername, make sure it matches the new hostname, because the proxy routes on SNI.

5. Verify before you delete. DBSIZE on both sides, PTTL on a handful of session keys, then run against the new database for a few days before you close the Redis Cloud subscription.

Where Redis Cloud still wins

Stay if any of these is true:

  • You use the modules. Search, JSON, time series, probabilistic, or vector sets. There is no substitute on a plain Redis or Valkey.
  • You need Active-Active. Multi-region writes with CRDT merge is a Redis Enterprise feature, full stop.
  • You need the SLA. 99.99% on Essentials and 99.999% on Pro are contractual. We do not sell an SLA on shared plans.
  • You need RBAC and SAML SSO. Enterprise identity controls are included down to Essentials there, and absent here.
  • You want Redis Insight integrated into the console, with its profiler and memory analysis.
  • You are at terabyte scale. Redis Flex tiering to SSD is what makes a very large keyspace affordable, and our pool is not built for it.

The case for moving is the common one: the database is a cache, a session store, a rate limiter, or a queue; it uses the core command set; and you would like the bill to be a number rather than a meter.

FAQ

How much does Redis Cloud cost?

As of 2026-09-06, Free is $0 for up to 30 MB on a shared deployment; Essentials starts at $0.007 an hour, about $5 a month, for 250 MB and scales to 100 GB; Pro starts at $0.014 an hour with a $200 monthly minimum (the first $200 is free) and is the first tier with a dedicated deployment and multiple databases.

What are the limits of the Redis Cloud free tier?

30 MB of memory, a single database on a shared deployment, and a best-effort SLA. In practice the limits that end it first are 30 concurrent connections and 100 operations per second, which a serverless app with a connection per invocation reaches long before it fills 30 MB.

Is Valkey a drop-in replacement for Redis Cloud?

For the core command set, yes. Valkey forked from Redis 7.2.4 and speaks the same RESP protocol, so ioredis, redis-py, redis-cli, and BullMQ connect unchanged. It is not a replacement for the Redis modules: FT.*, JSON.*, and TS.* commands do not exist on Valkey or on Redis 7.2.

Which Redis version does Layerbase run, and why not Redis 8?

Redis 7.2, the last release before the 2024 license change, and Valkey 9.0. Redis 8 moved to AGPLv3, which is OSI-approved, but we have stayed on the pre-change line for Redis and put the new engineering effort behind Valkey, which is BSD-licensed and where the ecosystem is moving.

How do I export data from Redis Cloud?

Copy the database's public rediss:// endpoint from the console, then either paste it into the Layerbase migration wizard, which scans the keyspace once and copies every key, type, and TTL, or run a short ioredis script that SCANs the keyspace and DUMPs and RESTOREs each key with its TTL into the new database. Redis Cloud also offers RDB export to cloud storage on paid plans.

Does my @upstash/redis or edge-runtime code work on Layerbase?

Yes. Every Redis and Valkey database exposes an Upstash-compatible REST endpoint next to the TLS port, so HTTP-only runtimes like Cloudflare Workers and Vercel Edge can use the same database your Node services reach over TCP.

The wrap-up

Redis Cloud sells the modules, Active-Active, and a contractual SLA, and prices accordingly. If you use those, the price is buying something you cannot get elsewhere. If you use Redis the way most applications do, as a fast place to put a key with an expiry, you are paying for a feature set that never runs.

Create a Valkey database on the Free tier, paste your Redis Cloud endpoint into the migration wizard, and find out whether anything you actually call was on the module list.