Dunia perangkat lunak open source (sumber terbuka) dikejutkan dengan keputusan Redis berpindah lisensi. Ini berarti Redis tidak lagi dianggap sebagai perangkat lunak open source. Artikel ini akan membahas cara mudah dan cepat beralih dari Redis ke Valkey, alternatif yang masih open source.
Kenapa Perlu Pindah?
Beberapa minggu lalu, perusahaan di balik Redis mengumumkan perubahan lisensi. Versi terbaru Redis akan menggunakan lisensi ganda RSALv2 (Redis Source Available License 2.0) / SSPLv1 (Server Side Public License).
Singkatnya, Redis tidak lagi open source menurut definisi OSI (Open Source Initiative). Akibatnya, sejumlah kontributor dan pengelola Redis membentuk Valkey, project baru dibawah Linux Foundation.
Valkey bisa dibilang kelanjutan open source Redis. Mereka menggunakan basis kode yang sama dan banyak developer yang turut bergabung. Tim teknis Valkey terdiri dari perwakilan Alibaba, AWS, Ericsson, Huawei, Google, dan Tencent, serta organisasi lain sebagai kontributor.
Migrasi ke Valkey
Sebagai pengguna setia Redis, bagaimana cara pindah ke Valkey?
Bagi pengguna Fedora, tersedia paket valkey-compat-redis
untuk memindahkan data dan konfigurasi Anda ke Valkey.
Misalkan Anda sudah memiliki Redis terinstal, berjalan, dan berisi data.
Pertama, mari kita lihat informasi server Redis saat ini:
$ redis-cli info server
# Server
redis_version:7.2.4
# ...
Catat redis_version:7.2.4
untuk nanti.
Selanjutnya, kita akan menulis sedikit data ke key sebagai contoh:
$ redis-cli set test_key "data awal di redis 7.2.4"
Persistensi Data
Sebelum migrasi, penting untuk memperhatikan pengaturan persistensi (keawetan data) Anda. Redis (dan Valkey) menawarkan berbagai cara untuk menyimpan data secara permanen.
valkey-compat-redis
akan menutup Redis dengan aman menggunakan perintah SIGTERM
, tetapi tidak bisa menjamin keawetan data Anda. Jika persistensi tidak diatur atau opsi shutdown-on-sigterm
pada konfigurasi Redis diatur ke now
atau force
, data Anda bisa hilang.
Namun, perlu diingat bahwa menggunakan valkey-compat-redis
tidak berbeda dengan upgrade Redis pada umumnya dalam hal ini.
Instalasi Valkey
Sekarang saatnya pindah ke Valkey!
Instal valkey-compat-redis
dengan flag allowerasing
. Flag ini memberi tahu package manager untuk menghapus Redis dan menggantinya dengan Valkey.
$ sudo dnf install valkey-compat-redis --allowerasing
Perintah ini akan memindahkan file konfigurasi dan data persistensi Anda yang ada ke Valkey. Valkey dapat menerimanya secara langsung tanpa perlu perubahan atau konversi.
Valkey sepenuhnya kompatibel dengan API, protokol, data persistensi, port, dan file konfigurasi Redis.
Mengapa bisa demikian?
Karena Valkey 7.2.5, rilis terbaru saat ini, pada dasarnya hanya berganti nama dari Redis 7.2.4. Perubahan kode pada Valkey 7.2.5 hanya fokus pada branding, tanpa fitur atau fungsi baru yang berarti. Hal ini dilakukan untuk mempermudah migrasi pengguna ke Valkey.
Menjalankan Valkey
Setelah terinstal, jalankan Valkey:
$ sudo systemctl start valkey
Kemudian periksa informasi server:
$ redis-cli info server
# Server
redis_version:7.2.4
server_name:valkey
valkey_version:7.2.5
# ...
Perhatikan beberapa hal:
- Valkey merespons dengan
redis_version:7.2.4
danvalkey_version:7.2.5
. Beberapa software mungkin memiliki pengecekan versi tertentu dan bisa error jika mendapat respon yang tidak dikenal. Dengan mempertahankanredis_version
, kompatibilitas tetap terjaga. - Valkey memiliki binary bernama
valkey-cli
tetapi diberi tautan simbolik keredis-cli
. Ini memudahkan Anda yang terbiasa menggunakanredis-cli
. Hal yang sama berlaku untukvalkey-server
danredis-server
.
Berinteraksi dengan Valkey
Sekarang saatnya mengecek data dan berinteraksi dengan server. Pertama, coba ambil data yang sebelumnya ditulis di Redis (jika persistensi tidak aktif, langkah ini tidak akan berhasil):
$ valkey-cli get test_key
"data awal di redis 7.2.4"
Kemudian, kita bisa menulis data baru ke server dan mengambilnya kembali bersama dengan data awal yang ditulis di Redis
$ valkey-cli set dari-server-baru "data baru dari valkey-7.2.5"
OK
$ valkey-cli mget test_key dari-server-baru
1) "data awal di redis 7.2.4"
2) "data baru dari valkey-7.2.5"
Contoh ini menunjukkan beberapa hal penting. Pertama, karena valkey-compat-redis
memindahkan konfigurasi Anda, konfigurasi tersebut tidak harus menjadi default. Apapun konfigurasi Redis 7.2.4 Anda, valkey-compat-redis
akan memindahkan konfigurasi sederhana maupun kompleks ke Valkey yang dapat membacanya. Hal ini berarti langkah migrasi yang sama juga berlaku untuk Cluster atau Sentinel.
Kedua, karena Valkey terhubung dengan cara yang sama (menggunakan protokol dan port default), aplikasi Anda seharusnya tetap berfungsi. Menyediakan informasi koneksi yang sama ke aplikasi Anda yang sebelumnya mengarah ke Redis (dan sekarang mengarah ke Valkey) akan menghasilkan hasil yang sama.
Pertimbangan Lainnya
Tentu saja, ada beberapa hal yang tidak dapat diilustrasikan dalam contoh di atas:
- Anda tidak harus menggunakan
valkey-compat-redis
. Anda dapat langsung menginstalvalkey
. Jika Anda sudah memiliki Redis di mesin dan menjalankan:
$ sudo dnf install valkey
Valkey akan terinstal bersama Redis. Namun, Anda tidak dapat menjalankan kedua proses secara bersamaan menggunakan konfigurasi default. Anda perlu mengubah file konfigurasi di /etc/valkey/valkey.conf
untuk menggunakan port yang berbeda agar Valkey dan Redis dapat berjalan bersamaan. Bahkan, Anda dapat mengelompokkan Valkey dan Redis karena mereka menggunakan protokol yang sama, memungkinkan migrasi yang lebih kompleks.
- Perlu diingat bahwa Valkey tidak lebih kompatibel ke belakang daripada Redis 7.2.4. Memigrasi dari versi Redis yang sangat lama ke Valkey membawa perubahan yang sama seperti beralih ke Redis 7.2.x. Untungnya, sebagian besar versi membawa perubahan minimal bahkan di antara versi utama.
Apa Selanjutnya?
Artikel ini berfokus pada apa yang tidak berubah dan mengapa hal itu baik. Tim Valkey berencana untuk tidak menambahkan fitur baru ke 7.2.x. Di masa depan, hanya perbaikan bug yang akan dirilis dalam bentuk patch. Semua perubahan baru akan dimasukkan ke dalam 8.x.
Meskipun tim sibuk merencanakan serangkaian fitur baru untuk meningkatkan kinerja dan kegunaan, mereka tidak berencana untuk merusak API.
Jika Anda tertarik untuk membantu mengembangkan Valkey, silakan kunjungi https://valkey.io/ dan baca file CONTRIBUTING.md
untuk informasi lebih lanjut.