[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"seo-verification":3,"blog-valkey-vs-redis-in-2026-comparison-and-migration-guide-ma-en":6,"promo-bar-likely":188},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-valkey-vs-redis-in-2026-comparison-and-migration-guide-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":127,"ctaBody":128,"ctaButton":129,"ctaUrl":130,"relatedPosts":131},217,"valkey-vs-redis-in-2026-comparison-and-migration-guide",{"fr":12,"en":10,"ar":13,"es":14},"valkey-vs-redis-migration-2026","valkey-مقابل-redis-في-2026-المقارنة-ودليل-الترحيل","valkey-vs-redis-2026-comparativa-y-migracion","Valkey vs Redis in 2026: comparison and migration guide","Valkey 9.1 vs Redis 8: RESP2\u002FRESP3, RDB\u002FAOF format, module API, client libraries and a 4-step migration. Choose in 2026 by licence and modules.",12,11,false,"2026-08-03T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},6,"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fvalkey-vs-redis-migration-2026-poster.svg","In 2024, Redis's switch to the RSALv2 and SSPLv1 licences shook the open source ecosystem. The Linux Foundation, with AWS, Google Cloud, Oracle, Ericsson and Snap, responded with Valkey, a collectively maintained BSD fork. Since then, Redis reversed course by adding AGPLv3 with Redis 8 in May 2025 — a positive signal, but AGPLv3 is a strong copyleft: anyone who modifies Redis and offers it over a network must publish those modifications, creating real constraints for reseller hosting providers and commercial software vendors. Valkey 9.1, released in May 2026, is the current stable branch; Fedora adopted Valkey in place of Redis, and Debian and Ubuntu both ship it in their official repositories. This guide covers the real differences — protocol, data format, module API, client libraries, configuration — and helps you choose and migrate in four steps.",[35,39,75,78,81,84,87,90,93,109,112,124],{"type":36,"title":37,"body":38},"h2","Why the Redis\u002FValkey debate is back in 2026","In March 2024, Redis Ltd. announced that from Redis 7.4 onwards the code would be released under a dual RSALv2 and SSPLv1 licence, neither of them OSI-approved. The reaction was immediate: the Linux Foundation launched Valkey with support from AWS, Google Cloud, Oracle, Ericsson and Snap. The fork started from Redis 7.2.4 under the BSD licence. In May 2025, Redis 8 added AGPLv3, an OSI-approved licence, as an option alongside the other two — a positive signal, but AGPLv3 is strong copyleft: anyone who modifies Redis and makes it available to users over a network must publish the source code of those modifications, raising real questions for reseller hosting providers and commercial software vendors. Meanwhile, Fedora replaced Redis with Valkey from Fedora 41, and Debian 13 and Ubuntu 24.04 both ship a `valkey-server` package in their official repositories.",{"type":40,"title":41,"headers":42,"rows":46},"comparison","Redis vs Valkey: key differences in 2026",[43,44,45],"Criterion","Redis 8 (AGPLv3, RSALv2 or SSPLv1)","Valkey 9.1 (BSD)",[47,51,55,59,63,67,71],[48,49,50],"Licence","AGPLv3 as an option — strong copyleft; RSALv2 and SSPLv1 restrict managed-service offerings","BSD 3-Clause — permissive, free commercial use",[52,53,54],"Performance","Historical baseline","Comparable — measure on your workload with `valkey-benchmark`",[56,57,58],"Protocol compatibility","100% Redis protocol","100% Redis protocol — transparent replacement",[60,61,62],"Distro support","`redis-server` package in Debian and Ubuntu","Replaces Redis in Fedora 41+; `valkey-server` package in Debian 13 and Ubuntu 24.04",[64,65,66],"Modules","JSON, search, time series and probabilistic types built into Redis 8","Compatible module API; official valkey-json, valkey-bloom, valkey-search modules",[68,69,70],"Cloud adoption","Redis Cloud, the vendor's managed offering","Offered by AWS ElastiCache and Google Cloud Memorystore",[72,73,74],"Best for","Existing projects depending on Redis Stack modules","New projects, hosting providers, sovereign stacks, modern distros",{"type":36,"title":76,"body":77},"Protocol compatibility: RESP2 and RESP3","The most common question before a migration is about the protocol. Valkey implements 100% of the **Redis Serialization Protocol** in both versions.\n\n**RESP2** (the historic protocol) is fully supported. All your existing client libraries — ioredis, Predis, redis-py, Jedis, StackExchange.Redis — communicate with Valkey without any code or configuration changes. The replacement is transparent at the socket level.\n\n**RESP3** (introduced with Redis 6.0) is also supported by Valkey 9.1. This protocol brings enriched response types — maps, sets, doubles, booleans, attributes — allowing modern clients to reduce parsing round-trips. Libraries that enable RESP3 by default (ioredis 6, redis-py 8) work without modification with Valkey.\n\nOne point to verify: if your client negotiates the protocol via the `HELLO` command, Valkey responds identically to Redis. The `HELLO 3` command activates RESP3 on both systems the same way. You can confirm this on an existing Valkey instance with `valkey-cli HELLO 3`.",{"type":36,"title":79,"body":80},"Data formats: RDB and AOF compatible up to Redis 7.2","The persistence file format is the other critical point of a migration, and this is where your starting version matters. Valkey is compatible with Redis OSS 7.2 and all earlier open source versions; from Redis 7.4 onwards, the data files no longer are.\n\n**RDB (Redis Database Backup)**: Valkey reads RDB files up to version 11, the one used by Redis 7.2. A `dump.rdb` file produced by Redis 7.2 or earlier imports directly into Valkey 9.1 by placing it in Valkey's `dir` directory before startup. Redis 7.4 and Redis 8 write RDB version 12 and above, which Valkey rejects by default; the `rdb-version-check relaxed` option attempts a best-effort load, aborted as soon as unknown data appears. From those versions, use a key-by-key migration (`MIGRATE` or a dedicated tool) or let the cache rebuild itself.\n\n**AOF (Append-Only File)**: up to Redis 7.2, the AOF journal format is the same as Valkey's. If you use AOF persistence or mixed mode (`aof-use-rdb-preamble yes`) on those versions, your existing files are read by Valkey without modification. The `BGSAVE` and `BGREWRITEAOF` commands behave the same way.\n\n**In-memory data format**: Valkey data structures — strings, hashes, lists, sets, sorted sets, streams, HyperLogLog, bitmaps, geospatial — are the same as in Redis. Their internal encodings (listpack, skiplist, quicklist, intset) may change from one version to the next with no effect on the client side. A client that stores a hash in Redis retrieves it intact from Valkey.",{"type":36,"title":82,"body":83},"Command API: what is identical, what differs","The full Redis 7.2 command set is supported by Valkey. The main categories — strings, hashes, lists, sets, sorted sets, streams, pub\u002Fsub, transactions, Lua scripting, keyspace notifications, cluster — work identically.\n\n**Lua scripting**: Valkey supports `EVAL`, `EVALSHA` and `SCRIPT LOAD`. Lua scripts written for Redis run without modification on Valkey. The `cjson` library and `redis.call()` functions are available, with one nuance: Valkey has added the `server` namespace (`server.call()`) for new scripts, but `redis.call()` remains functional for backwards compatibility.\n\n**Cluster**: the Gossip protocol and cluster management commands (`CLUSTER INFO`, `CLUSTER NODES`, `CLUSTER MEET`, `CLUSTER FAILOVER`) are identical. A Valkey node can join a Redis 7.2 or earlier cluster as a replica, which allows the switchover — however, a mixed Redis\u002FValkey cluster is not recommended in production: major versions may introduce behavioural differences on internal commands. Migrating nodes one by one remains the safe path.\n\n**ACL (Access Control Lists)**: the ACL rule format is identical. An `aclfile` exported from Redis (`ACL SAVE`) can be reloaded into Valkey. The `ACL LIST`, `ACL SETUSER`, `ACL GETUSER` commands work identically.\n\n**Keyspace notifications**: the `notify-keyspace-events` configuration and subscription patterns (`__keyevent@*__:set`, etc.) are identical. Your pub\u002Fsub consumers listening to keyspace events do not need to be modified.\n\n**What differs**: the Redis Stack modules — RedisJSON, RediSearch, RedisTimeSeries, RedisBloom — built into Redis 8 do not ship with Valkey. Valkey publishes its own official modules: valkey-json (`JSON.*`), valkey-bloom (`BF.*`) and valkey-search (`FT.*`, vector search), but the API is not guaranteed to be identical and no official module replaces RedisTimeSeries. If your code calls commands like `JSON.SET`, `FT.SEARCH` or `TS.ADD`, test each one before migrating.",{"type":36,"title":85,"body":86},"Configuration: parameters to check when switching","The `valkey.conf` syntax is identical to `redis.conf`. You can copy your existing configuration file without rewriting. A few points require specific attention.\n\n**Default paths**: Valkey uses `\u002Fetc\u002Fvalkey\u002Fvalkey.conf` and `\u002Fvar\u002Flib\u002Fvalkey\u002F` instead of `\u002Fetc\u002Fredis\u002F` and `\u002Fvar\u002Flib\u002Fredis\u002F`. If you copy your configuration, update the `dir`, `logfile`, `pidfile` and `aclfile` directives to point to Valkey paths.\n\n**systemd service name**: the service is called `valkey-server` on Debian and Ubuntu (with a `valkey` alias) and `valkey` on Fedora. Commands are therefore `systemctl start valkey-server` or `systemctl enable valkey`.\n\n**TLS**: Valkey supports TLS on client connections (`tls-port`, `tls-cert-file`, `tls-key-file`, `tls-ca-cert-file`) identically to Redis 6+. If you have enabled TLS in Redis, the same configuration works in Valkey without modifying your clients.\n\n**maxmemory and eviction**: eviction policies (`allkeys-lru`, `volatile-lru`, `allkeys-lfu`, `noeviction`, etc.) are identical. Your current policy transfers directly.\n\n**Bind and protection-mode**: Valkey starts in protected mode by default (like Redis), refusing non-loopback connections if no password is defined. Your `bind` and `requirepass` (or ACL) configuration transposes directly.",{"type":36,"title":88,"body":89},"Client libraries: what you don't change","This is one of Valkey's strengths: no client library requires modification to connect to Valkey. Since the protocol is identical, the client does not know whether it is talking to Redis or Valkey.\n\n**JavaScript \u002F Node.js**: `ioredis`, `node-redis` (the redis npm package), `redis` — all work. Change only the host and port in your connection configuration.\n\n**Python**: `redis-py` (the `redis` package on PyPI) and its asynchronous client `redis.asyncio`, which replaces `aioredis` — compatible. The connection `Redis(host='valkey-host', port=6379)` works without any other change.\n\n**PHP**: `phpredis` (C extension), `Predis` (pure PHP) — compatible. No code changes.\n\n**Java**: `Jedis`, `Lettuce`, `Redisson` — compatible. Adapt only the connection parameters.\n\n**.NET**: `StackExchange.Redis` — compatible. Same connection string, host and port updated.\n\n**Go**: `go-redis`, `rueidis` — compatible.\n\nIf you use an abstraction like Laravel Cache (`CACHE_STORE=redis`), Django `django-redis`, Spring Data Redis or Symfony Cache with the Redis adapter, these abstraction layers reconnect to Valkey without code changes — only the connection DSN changes.",{"type":36,"title":91,"body":92},"When to choose Valkey over Redis","Valkey is the natural choice in several contexts. Hosting providers and resellers are the most affected: Redis's AGPLv3 requires publishing modifications made to Redis as soon as it is offered over a network, and its two other licences (RSALv2, SSPLv1) restrict offering Redis as a managed service — constraints that are hard to reconcile with most commercial offerings. New projects that do not need Redis 8's modules have little reason to start on Redis: Valkey is available in the repositories of recent distributions and its BSD licence has no restrictions. GDPR and sovereignty stacks also benefit from the Linux Foundation governance, which is more neutral than a private vendor. Finally, if you are coming from Redis 7.2 or earlier and do not use the Redis Stack modules (RedisJSON, RediSearch, RedisTimeSeries), migration is transparent — all your existing libraries and configurations remain valid.",{"type":94,"title":95,"steps":96},"steps","Migrate from Redis to Valkey in 4 steps",[97,100,103,106],{"title":98,"body":99},"Verify compatibility","Run `redis-cli INFO server | grep redis_version` to identify your current version. List your dependencies and confirm none uses Redis Stack modules (RedisJSON, RediSearch, RedisTimeSeries). If so, direct migration is not yet recommended. Beyond Redis 7.2 (7.4, 8.x), your RDB and AOF files cannot be read by Valkey: plan a key-by-key migration. Also check your Lua scripts: `redis.call()` remains compatible, but identify any call to proprietary module commands.",{"title":101,"body":102},"Install Valkey","On Ubuntu 24.04+ and Debian 13, Valkey is available in native repositories: `apt install valkey-server` (Ubuntu 24.04 ships the 7.2 branch, Debian 13 the 8.1 branch). On Fedora 41+, `dnf install valkey`. For a newer version, use the official binaries or the `valkey\u002Fvalkey` Docker image published on valkey.io. The package installs `valkey-server` and, through its dependencies, `valkey-cli` and `valkey-benchmark` — tools functionally identical to their Redis counterparts.",{"title":104,"body":105},"Copy configuration and data","The configuration syntax is identical between Redis and Valkey. Copy your file and update the paths: `cp \u002Fetc\u002Fredis\u002Fredis.conf \u002Fetc\u002Fvalkey\u002Fvalkey.conf`, then adapt `dir`, `logfile`, `pidfile` to point to `\u002Fvar\u002Flib\u002Fvalkey\u002F` and `\u002Fvar\u002Flog\u002Fvalkey\u002F`. Export your Redis data via an RDB snapshot (`redis-cli --rdb \u002Ftmp\u002Fdump.rdb`) then place the file in Valkey's `dir` directory. If AOF is enabled in Valkey's configuration, disable it (`appendonly no`) on the first start, otherwise the RDB file is not imported, then re-enable it (`valkey-cli CONFIG SET appendonly yes`). To avoid downtime, make Valkey a replica of Redis instead (`REPLICAOF \u003Credis-ip> 6379`, with `masterauth` if Redis requires a password), then run `REPLICAOF NO ONE` after the switchover.",{"title":107,"body":108},"Start Valkey and validate","Start the service (`systemctl start valkey-server`, or `valkey` on Fedora), then validate with `valkey-cli ping` — you should receive `PONG`. Verify your data is present with `valkey-cli DBSIZE` and compare with the key count from your old Redis instance. Test your application on a few representative requests before cutting over from Redis. If you use ACLs, reload your exported ACL file with `valkey-cli ACL LOAD`. All your client libraries (ioredis, Predis, redis-py) are compatible without modification — change only the connection host.",{"type":110,"body":111},"tip","Valkey includes `valkey-benchmark`, functionally identical to `redis-benchmark`. Before any production migration, validate performance on your hardware with `valkey-benchmark -n 100000 -q`. This command sends 100,000 requests and displays the ops\u002Fsec summary for each command type. Compare the figures with those of your old Redis instance on the same server. To specifically test pipelining and RESP3, add the `-P 16` option (16 requests per batch) or `-3`.",{"type":113,"title":114,"items":115},"ul","What does not change in a Redis → Valkey migration",[116,117,118,119,120,121,122,123],"All your client libraries (ioredis, redis-py, Predis, Jedis, StackExchange.Redis, go-redis) — no code changes","The communication protocol: RESP2 and RESP3 are fully supported","Your RDB and AOF persistence files, if they come from Redis 7.2 or earlier — readable by Valkey without conversion","The `redis.conf` syntax — copy the file and update the paths","Your Lua scripts — `redis.call()` works, `server.call()` is additionally available","Your ACL rules exported from Redis — reloaded directly into Valkey","TLS configuration, memory eviction policies and keyspace notifications","The usual `redis-cli` commands — `valkey-cli` accepts them all",{"type":36,"title":125,"body":126},"What about your other databases on VPS?","Valkey is just one piece of your data stack. If you also host a relational database, see our guide on MariaDB on VPS: configuration, performance and replication. For full-text search, our Elasticsearch on VPS guide covers installation, memory tuning and production indexes. Each component deserves configuration adapted to your workload — our Cloud VPS gives you full control of your environment.","Deploy Valkey on a controlled VPS","Our Cloud VPS gives you full root access to install Valkey, configure your data stack and optimise performance to your real needs. No proprietary overlay, no licence constraints.","Deploy my VPS","\u002Fvps-cloud",[132,152,169],{"id":133,"slug":134,"slugs":135,"title":139,"excerpt":140,"readTime":141,"views":142,"isPinned":19,"noindex":19,"publishedAt":143,"updatedAt":144,"category":145,"categories":146,"featuredImage":30,"bgImage":31,"posterImage":148,"relatedSolution":149},146,"mariadb-on-a-vps-free-fast-controlled-sql",{"fr":136,"en":134,"ar":137,"es":138},"heberger-mariadb-vps","mariadb-على-vps-sql-حر-وسريع-وتحت-السيطرة","alojar-mariadb-en-un-vps","MariaDB on a VPS: free, fast, controlled SQL","Deploy MariaDB on a ServOrbit VPS: 1-click install, automated backups, InnoDB tuning and secure remote access.",10,1,"2026-01-30T00:00:00+00:00","2026-10-07T23:07:24+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[147],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-mariadb-vps-poster.svg",{"categorySlug":150,"appSlug":151},"db","mariadb-stack",{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":161,"views":162,"isPinned":19,"noindex":19,"publishedAt":163,"updatedAt":164,"category":165,"categories":166,"featuredImage":30,"bgImage":31,"posterImage":168,"relatedSolution":30},69,"hosting-elasticsearch-on-a-vps",{"fr":156,"en":154,"ar":157,"es":158},"heberger-elasticsearch-vps","استضافة-elasticsearch-على-خادم-vps","alojar-elasticsearch-en-un-vps","Hosting Elasticsearch on a VPS: security and troubleshooting","Install and secure Elasticsearch on a VPS: precise JVM prerequisites, Docker deployment, xpack.security, ILM, S3 snapshots and heap monitoring.",13,2,"2026-04-12T00:00:00+00:00","2026-09-08T22:00:01+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[167],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-elasticsearch-vps-poster.svg",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":179,"isPinned":19,"noindex":19,"publishedAt":180,"updatedAt":164,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":185},67,"hosting-meilisearch-on-a-vps",{"fr":173,"en":171,"ar":174,"es":175},"heberger-meilisearch-vps","استضافة-meilisearch-على-خادم-vps","alojar-meilisearch-en-un-vps","Hosting Meilisearch on a VPS","Host Meilisearch on your VPS: an instant, fault-tolerant and typo-tolerant search engine. A Docker, master key and SSL guide.",5,3,"2026-04-14T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-meilisearch-vps-poster.svg",{"categorySlug":186,"appSlug":187},"databases","meilisearch",true,1794270508283]