Valkey vs Redis: Haruskah Anda Migrasi Setelah Fork?

Foto oleh U.S. Fish and Wildlife Service via Wikimedia Commons (Public domain)
Untuk beban caching, penyimpanan sesi, rate limiting, dan antrean standar, ya. Valkey di-fork dari Redis 7.2.4 dan mempertahankan protokol RESP serta set perintah lengkap, sehingga klien, perintah, dan berkas data RDB/AOF yang ada berjalan tanpa perubahan. Pengecualiannya adalah modul Redis berpemilik seperti RediSearch dan RedisJSON, yang bukan bagian dari Valkey.
Pada Maret 2024 Redis Ltd beralih dari lisensi permisif BSD ke lisensi source-available (RSALv2 dan SSPLv1), yang bukan open source yang disetujui OSI. Dalam hitungan hari, para maintainer sebelumnya yang didukung AWS, Google, Oracle, dan Ericsson mem-fork Redis 7.2.4 menjadi Valkey di bawah Linux Foundation dengan lisensi BSD 3-Clause agar opsi yang benar-benar open source tetap tersedia.
Ya. Pada Mei 2025 Redis menambahkan AGPLv3, lisensi open source yang disetujui OSI, ke Redis 8 di samping tingkatan source-available-nya. Jadi Redis dan Valkey kini keduanya open source, tetapi AGPLv3 adalah lisensi copyleft dengan kewajiban penggunaan jaringan, sedangkan lisensi BSD Valkey hanya mewajibkan atribusi.
Valkey 8.0 dan 8.1 merilis I/O threading asinkron, hashtable hemat memori yang didesain ulang, dan prefetching iterator yang membuat sebagian operasi beberapa kali lebih cepat serta memangkas memori per kunci sebesar 20 hingga 30 byte. Redis 8 juga punya percepatannya sendiri, jadi lakukan benchmark terhadap beban kerja nyata Anda alih-alih mempercayai satu angka judul.
Karena Valkey berbicara dengan protokol replikasi Redis, tempelkan replika Valkey ke primary Redis Anda yang hidup menggunakan REPLICAOF, tunggu hingga tersinkron penuh, lalu promosikan dengan REPLICAOF NO ONE dan arahkan kembali connection string aplikasi Anda. Jaga instance Redis lama tetap berjalan hangat agar rollback cukup dengan mengembalikan connection string.

Foto oleh U.S. Fish and Wildlife Service via Wikimedia Commons (Public domain)
Ringkasan Utama
Valkey adalah fork Redis 7.2.4 berlisensi BSD di bawah Linux Foundation yang tetap kompatibel dengan protokol dan set perintah Redis. Untuk sebagian besar beban caching dan sesi, ini benar-benar drop-in: ganti binari, pertahankan klien Anda. Redis kembali menjadi open source di bawah AGPLv3 pada 2025, jadi migrasi kini soal tata kelola, biaya, dan performa, bukan soal bertahan hidup.
Selama lebih dari satu dekade, Redis adalah jawaban default untuk caching, rate limiting, penyimpanan sesi, dan antrean pekerjaan. Lalu pada Maret 2024 Redis Ltd mengubah lisensinya, dan dalam seminggu jawaban itu punya nama kedua: Valkey. Saya menjalankan instance yang kompatibel dengan Redis di VPS sendiri dan mengandalkan cache terkelola di kantor, jadi ketika fork terjadi saya harus benar-benar memutuskan apa yang akan dipasang ke depan. Tulisan ini adalah keputusan yang saya lalui, tanpa kebisingan perang lisensi di Twitter.
Versi singkatnya: ini bukan lagi cerita tentang perusahaan yang mengkhianati komunitasnya. Redis berbalik arah, kedua proyek kembali menjadi open source, dan kedua basis kode mulai menyimpang dengan cara yang menarik. Itu membuat perbandingannya lebih bernuansa daripada yang bisa ditangkap sebuah judul, jadi mari kita telusuri dengan benar.
Anda tidak bisa menimbang trade-off tanpa mengetahui urutan kejadiannya, karena hal yang ditakuti semua orang pada 2024 sudah tidak ada lagi pada 2026. Inilah rangkaian keputusan yang sebenarnya.
Jadi keduanya kini open source. Namun AGPLv3 adalah lisensi copyleft dengan kewajiban nyata jika Anda memodifikasi server dan mengeksposnya lewat jaringan, sementara BSD 3-Clause milik Valkey hanya meminta atribusi. Jika tim hukum Anda pernah bergidik mendengar huruf AGPL, perbedaan itu saja bisa menentukan jawabannya.
Pada tahun pertama, Valkey pada dasarnya adalah Redis 7.2 dengan logo berbeda. Itu tidak lagi benar. Sejak fork, Valkey merilis 8.0 dan 8.1 dengan rekayasa yang tidak dimiliki Redis OSS pada waktu yang sama, dan di sinilah kedua proyek benar-benar menyimpang.
Redis juga tidak diam. Redis 8 membawa percepatan perintahnya sendiri dan menambahkan Vector Sets untuk pencarian embedding. Intinya bukan bahwa satu secara universal lebih cepat — melainkan keduanya kini dua produk terpisah dengan roadmap terpisah yang kebetulan berbagi leluhur.
Karena Valkey di-fork dari Redis 7.2.4 dan mempertahankan protokol RESP serta seluruh set perintah, kode aplikasi Anda tidak perlu berubah. Pustaka klien yang sama tersambung, perintah yang sama berjalan, berkas RDB dan AOF termuat. Di server saya sendiri, saya menghentikan kontainer Redis, menjalankan kontainer Valkey yang menunjuk ke direktori data yang sama, dan aplikasi tidak menyadari apa pun.
# Same client, same commands — this is the whole point
redis-cli -h cache.internal ping # PONG
redis-cli -h cache.internal info server | grep -E 'redis_version|server_name'
# On Valkey you'll see something like:
# server_name:valkey
# valkey_version:8.1.0
# redis_version:7.4.0 <- reported for client compatibilitySatu kasus tepi yang perlu diperhatikan: beberapa pustaka klien bercabang berdasarkan string versi atau negosiasi CLIENT INFO / HELLO. Valkey melaporkan redis_version demi kompatibilitas tetapi juga mengekspos server_name:valkey. Versi lama beberapa klien (ioredis yang paling menonjol) mengasumsikan perilaku khusus Redis saat penyiapan koneksi. Sematkan versi klien terkini dan uji handshake koneksi Anda sebelum memindahkan produksi.
Peringatan kompatibilitas lainnya adalah modul Redis berpemilik — RediSearch, RedisJSON, RedisBloom, dan Vector Sets yang lebih baru. Itu adalah fitur Redis Ltd dan bukan bagian dari Valkey. Valkey punya cerita modulnya sendiri dan padanan komunitas, tetapi jika tumpukan Anda bergantung khusus pada RediSearch, itulah batas yang membuat migrasi tidak sepele.
| Dimensi | Valkey | Redis (8.x) |
|---|---|---|
| Lisensi | BSD 3-Clause (open source OSI, permisif) | Tri-lisensi: AGPLv3, RSALv2, SSPLv1 |
| Tata kelola | Linux Foundation, netral vendor (AWS, Google, Oracle) | Redis Ltd, dikendalikan satu perusahaan |
| Protokol / perintah | RESP, set perintah lengkap Redis 7.2, drop-in | RESP, superset dengan perintah lebih baru |
| Modul search / JSON | Modul komunitas dan asli Valkey; tanpa RediSearch | RediSearch, RedisJSON, Vector Sets bawaan |
| Cloud terkelola | AWS ElastiCache, Google Memorystore, OCI Cache (sering lebih murah) | Redis Cloud plus tingkatan Redis ElastiCache/Memorystore |
| Default distro | Default di Fedora, Ubuntu, Debian, Arch | Tersedia tetapi tidak lagi default distro |
Jawaban jujur saya, untuk cache atau penyimpanan sesi biasa, keputusannya berisiko rendah di kedua arah — itulah justru mengapa Anda sebaiknya memilih opsi dengan ikatan hukum yang lebih sedikit sebagai default. Beginilah cara saya membaginya.
# Live migration via replication (zero-dump)
# On the new Valkey instance:
valkey-cli> REPLICAOF redis-primary.internal 6379
valkey-cli> INFO replication # wait for master_link_status:up
# Once fully synced, promote Valkey to standalone:
valkey-cli> REPLICAOF NO ONE
# ...then repoint your app's connection string and keep Redis warm for rollback.Karena Valkey berbicara dengan protokol replikasi Redis, Anda bisa menempelkan replika Valkey ke primary Redis yang hidup dan bermigrasi dengan waktu henti nyaris nol alih-alih mengambil snapshot dan mengimpornya. Uji langkah promosi di staging terlebih dahulu — rencana rollback-nya cukup mengarahkan kembali ke instance Redis yang tetap Anda jalankan.
Setelah melakukan ini di infrastruktur saya sendiri, pergantian untuk cache biasa benar-benar tanpa insiden — pekerjaan menariknya adalah audit versi klien dan memastikan tidak ada modul berpemilik yang terpakai, bukan pemindahan data itu sendiri. Itulah keseluruhan cerita drop-in yang baik: migrasi yang membosankan adalah migrasi yang berhasil.