For years, Redis was the default answer for caching, session storage, rate limiting, and pub/sub in production systems. In 2024, Redis Ltd. changed the license on newer versions, and the Linux Foundation backed Valkey—a fork maintained by former Redis contributors and major cloud vendors. If you are provisioning infrastructure in 2026, you are not just choosing a cache; you are choosing an ecosystem path.
This article explains what changed, how Valkey and Redis differ in practice, and how to decide without a costly migration surprise.
What triggered the split
Redis historically used a permissive BSD-style license. Redis 7.4+ moved core development under source-available licenses (RSAL/SSPL) that restrict how cloud providers and some redistributors offer managed services. That shift pushed AWS, Google, Oracle, and others to invest in Valkey as an open-source alternative under the BSD 3-Clause license.
Valkey began as a fork of Redis 7.2 code. The goal: preserve the protocol, commands, and operational patterns teams already know, while keeping the project vendor-neutral.
Compatibility in the real world
For most applications, Valkey aims to be a drop-in replacement:
- Same wire protocol (RESP)
- Same client libraries—
redis-cli, node-redis, jedis, and others work against Valkey - Familiar data structures: strings, hashes, lists, sets, sorted sets, streams
Differences appear at the margins: newest Redis-only modules, enterprise features, or bleeding-edge commands may not exist in Valkey yet. Teams on vanilla caching, sessions, and queues rarely hit those gaps on day one.
Always run integration tests against your actual command set before switching production traffic.
Managed service landscape
Your choice is shaped by where you host:
| Provider | Valkey option | Redis-branded option |
|---|---|---|
| AWS | ElastiCache for Valkey | ElastiCache for Redis (legacy branding) |
| Google Cloud | Memorystore for Valkey | Memorystore for Redis |
| Azure | Azure Managed Valkey | Azure Cache for Redis |
Many providers now default new clusters to Valkey while supporting existing Redis deployments. Check regional availability and feature parity (cluster mode, persistence, TLS) in your target region before committing.
Licensing and compliance
Valkey — BSD 3-Clause. Friendly to redistribution, embedding, and multi-cloud packaging.
Redis (newer versions) — Source-available licenses with restrictions on offering competing managed services. Fine for internal use; legal review advised if you ship a database-as-a-service product built on Redis source.
If procurement or open-source policy requires OSI-approved licenses, Valkey simplifies the conversation.
Performance and operations
Benchmarks from cloud vendors and independent testers generally show Valkey performing similarly to Redis for typical workloads—because the codebase shared a common ancestor and optimizations continue on both sides.
Operational practices transfer directly:
- Set maxmemory and an eviction policy (
allkeys-lruis common for caches) - Enable AOF or RDB persistence when you cannot rebuild data from source systems
- Use TLS and auth tokens in managed offerings
- Monitor memory fragmentation, hit rate, and slow commands
Tune connection pooling in application servers. In-memory stores are fast; opening a new TCP connection per request is not.
Migration path from Redis to Valkey
A low-risk migration looks like this:
- Inventory commands — Capture MONITOR output or application traces. Flag exotic modules.
- Stand up Valkey in staging — Restore a snapshot or replay traffic in shadow mode.
- Run dual-write or read-from-Valkey tests — Compare latency and error rates.
- Cut over with DNS or config — Point clients at the new endpoint during a maintenance window if needed.
- Keep rollback ready — Snapshot before cutover.
For managed services, providers often offer in-place engine upgrades from Redis to Valkey with minimal downtime.
When to choose Valkey
Valkey is a strong default when:
- You want long-term open-source licensing clarity
- Your cloud's recommended managed cache is Valkey-branded
- You rely on community clients without Redis Enterprise modules
- You are starting a greenfield project in 2026
When to stay on Redis
Redis-branded offerings still make sense when:
- You depend on Redis Enterprise features (active-active geo replication, specific modules)
- Existing enterprise contracts and support cover Redis Ltd. products
- Your team standardized on Redis Stack components not yet ported to Valkey
Staying put is valid if migration cost outweighs licensing concerns and your provider continues supporting your current engine version.
Application patterns that work on both
These use cases port easily:
Session store — TTL keys with serialized user objects.
Rate limiting — INCR with expiry or sliding window via sorted sets.
Job queues — Lists or streams with consumer groups.
Feature flags — Hash per user or environment.
Document your key naming convention (app:service:entity:id) regardless of engine so future migrations stay boring.
Security reminders
In-memory stores often hold sessions and PII. Treat them like databases:
- Private subnets, no public endpoints
- AUTH tokens rotated regularly
- Encryption in transit (TLS) and at rest where the provider supports it
- Separate instances per environment (dev/staging/prod)
FAQ
Will my Redis client break with Valkey? For standard commands, no. Test modules and Lua scripts that depend on Redis-specific behavior.
Is Valkey a different product I have to learn? Operationally it behaves like Redis. The learning curve is policy and hosting choice, not a new API.
Can I run Valkey self-hosted? Yes. Packages and containers are available for Kubernetes and VMs, same as Redis.
What about Memcached instead? Memcached is simpler and multi-threaded for pure caching, but lacks persistence, rich data types, and pub/sub. Choose it only when you need a minimal cache and nothing else.
Making the call
If you are starting fresh, Valkey on a managed service gives you open licensing and broad vendor support with minimal surprise. If you are mid-contract on Redis Enterprise with critical modules, optimize what you have and plan migration when the business case is clear. Either way, the protocol compatibility means you are choosing a governance and hosting path—not relearning how in-memory data stores work.
Further Reading
Discover more articles on similar topics across our network
Comments
Loading comments…