In 2024, Redis Ltd. changed the license of Redis from the permissive BSD license to a dual source-available license (RSALv2/SSPLv1). In response, former Redis contributors and major cloud providers launched Valkey, a fork of Redis 7.2.4 under the BSD license, hosted by the Linux Foundation. Later, Redis 8 added the AGPLv3 as an additional option. Here’s what that means for you as someone running Redis on a server.
Timeline in short
- Redis ≤ 7.2 — BSD-3-Clause.
- Redis 7.4 — RSALv2 / SSPLv1 (source-available, not OSI open source).
- Valkey 7.2.5+ — fork under BSD-3-Clause, Linux Foundation project, backed by AWS, Google Cloud, Oracle, Ericsson and others.
- Redis 8 — adds AGPLv3 as a license option, plus features previously in Redis Stack modules (JSON, search, time series) in the core.
Does the license matter to you?
For most people running Redis or Valkey for their own applications, any of these licenses is fine. The restrictions mostly target companies offering Redis as a managed service. Organisations with policies requiring OSI-approved licenses (or avoiding AGPL) may prefer Valkey.
Distributions have reacted: several (Fedora, Arch, newer Debian/Ubuntu releases, Alpine) now package Valkey, and some provide a redis-compatible package or alias that installs Valkey.
Compatibility
Valkey is a drop-in replacement for Redis OSS 7.2:
- Same protocol (RESP2/RESP3) — existing client libraries (redis-py, ioredis, phpredis, Predis, Jedis, go-redis) work unchanged.
- Same commands, data types, persistence formats (RDB/AOF from Redis 7.2 load in Valkey), replication, Sentinel and Cluster.
- Tools:
valkey-cli,valkey-server,valkey-sentinel(many packages also provideredis-*compatibility names).
Divergence grows over time: features added to Redis after the fork (Redis 8’s integrated modules, new commands) aren’t in Valkey, and Valkey adds its own improvements (multi-threaded I/O enhancements, memory efficiency, cluster improvements). If you rely on Redis Stack modules (RediSearch, RedisJSON), check Valkey’s equivalent modules (valkey-search, valkey-json) or stay on Redis.
For typical uses — caching, sessions, queues (Sidekiq, Celery, BullMQ, Laravel), rate limiting, pub/sub — both work identically.
Install Valkey
Where your distribution packages it:
sudo apt install valkey # Debian 13+, newer Ubuntu
sudo dnf install valkey # Fedora, EPEL
Or with Docker:
docker run -d --name valkey -p 127.0.0.1:6379:6379 valkey/valkey:8
Configuration (/etc/valkey/valkey.conf) uses the same directives as Redis: bind, requirepass/ACLs, maxmemory, maxmemory-policy, appendonly. The security advice is the same: bind to localhost, require authentication, never expose it publicly. See installing and securing Redis.
Migrating from Redis to Valkey
For a cache, simply switch: stop Redis, start Valkey on the same port. The cache warms up again.
For persistent data:
- Make sure you’re on Redis 7.2 or earlier data formats (Valkey reads them). Data from Redis 7.4+/8 may use newer formats — migrate with replication or dump/restore tools instead.
- Take a snapshot:
redis-cli BGSAVE, wait forLASTSAVEto change. - Stop Redis, copy
dump.rdb(and/or the AOF directory) to Valkey’s data directory with correct ownership. - Start Valkey; verify with
valkey-cli DBSIZEand spot-check keys.
Zero-downtime alternative: make Valkey a replica of the Redis server (REPLICAOF redis-host 6379), let it sync, point the application at Valkey, then REPLICAOF NO ONE.
Which should you choose?
| Situation | Choice |
|---|---|
| Your distribution ships Valkey | Valkey — easiest, gets distro security updates |
| Need Redis 8 integrated search/JSON/time series | Redis 8 |
| Policy requires BSD/OSI license without AGPL | Valkey |
| Existing setup works and license is fine | Keep it; nothing forces a change |
Related: Redis vs Memcached, Redis persistence and redis-cli commands.