Sepuluh menit pertama di redis-cli sudah cukup untuk mempraktikkan pola penggunaan Redis yang paling dasar: menyimpan dan membaca nilai dengan SET dan GET, menghapus key dengan DEL, menaikkan penghitung dengan INCR, serta mengendalikan masa hidup key dengan TTL. Seluruh contoh menggunakan awalan dasar: pada nama key agar demo mudah dikenali dan aman dijalankan ulang kapan pun. Menjalankan ulang contoh selalu menimpa nilai lama, sehingga keluarannya tetap sama.
Menyimpan dan membaca nilai#
Perintah SET menyimpan sebuah nilai pada key tertentu dan selalu menjawab OK apabila berhasil. Bila key sudah ada, nilai lamanya ditimpa tanpa peringatan, sehingga penulisan pada key demo dapat diulang kapan pun. Perintah GET membaca key yang dituju dan mengembalikan nilainya apa adanya.
# menyimpan nilai string pada key dasar:salam
redis-cli SET dasar:salam "Halo, Redis"
# membaca kembali nilai key dasar:salam
redis-cli GET dasar:salam
# membaca key yang belum pernah dibuat
redis-cli GET dasar:tidak-adaOK
Halo, RedisBaris terakhir dari eksekusi di atas kosong karena GET menunjuk key yang belum pernah dibuat, yaitu dasar:tidak-ada. Pada mode non-interaktif, redis-cli menampilkan nilai yang tidak ada sebagai baris kosong, nilai integer tanpa awalan (integer), dan string tanpa tanda kutip. Tampilan sesi interaktif di terminal memuat prompt, kutip, dan awalan tersebut secara lengkap, sebagaimana berikut.
127.0.0.1:6379> SET dasar:salam "Halo, Redis"
OK
127.0.0.1:6379> GET dasar:salam
"Halo, Redis"
127.0.0.1:6379> GET dasar:tidak-ada
(nil)Menghapus key#
Perintah DEL menghapus key beserta nilainya dan mengembalikan jumlah key yang benar-benar terhapus. Key yang tidak ada tidak dihitung, sehingga angka yang dikembalikan mencerminkan penghapusan yang nyata. DEL juga menerima lebih dari satu key dalam satu pemanggilan, sehingga pembersihan beberapa key dapat dilakukan sekaligus.
# menyiapkan key contoh beserta nilainya
redis-cli SET dasar:salam "Halo, Redis"
# menghapus key dasar:salam dan memperoleh jumlah key yang terhapus
redis-cli DEL dasar:salam
# menyiapkan dua key contoh sekaligus
redis-cli SET dasar:arsip "laporan 2025"
redis-cli SET dasar:draf "catatan rapat"
# menghapus dua key dalam satu pemanggilan
redis-cli DEL dasar:arsip dasar:drafOK
1
OK
OK
2Keluaran 1 pada penghapusan pertama menunjukkan satu key terhapus, sedangkan 2 pada penghapusan kedua menunjukkan dua key sekaligus. Apabila GET dasar:salam dijalankan sekarang, jawabannya kosong, sebagaimana perilaku key yang tidak ada pada bagian sebelumnya.
Penghitung dengan INCR#
Perintah INCR menaikkan nilai bilangan bulat pada sebuah key sebanyak satu dan mengembalikan nilai barunya. Operasi ini atomik, sehingga banyak proses dapat menaikkan penghitung yang sama tanpa saling menimpa. Redis membuat key penghitung otomatis dengan nilai satu apabila key belum ada, tetapi contoh berikut menyiapkan key dengan SET bernilai nol agar alur nilainya terbaca jelas.
# menginisialisasi penghitung dengan nilai 0
redis-cli SET dasar:hitung 0
# menaikkan penghitung tiga kali secara berurutan
redis-cli INCR dasar:hitung
redis-cli INCR dasar:hitung
redis-cli INCR dasar:hitung
# membaca nilai akhir penghitung dengan GET
redis-cli GET dasar:hitungOK
1
2
3
3Tiga kali eksekusi INCR mengembalikan 1, 2, lalu 3, dan pembacaan terakhir dengan GET menunjukkan nilai yang sama. Pola ini menjadi dasar pembatasan laju, statistik, dan leaderboard: setiap peristiwa menaikkan key penghitung, dan nilainya dapat dibaca tanpa operasi baca-tulis manual yang rawan mengalami race condition, yaitu dua proses yang saling menimpa hasil kerjanya.
Masa hidup key dan TTL#
Sebuah key dapat diberi masa hidup (time to live, TTL) sehingga Redis menghapusnya otomatis setelah waktu tersebut habis. Pola ini berguna untuk data sementara seperti kode verifikasi sesi, tautan unduhan berbatas waktu, dan status antrean yang usang. Perintah TTL melaporkan sisa masa hidup key dalam satuan detik, angka -1 bila key menetap tanpa masa hidup, dan -2 bila key tidak ada.
# menyimpan key tanpa masa hidup
redis-cli SET dasar:notulensi "rapat pukul 10.00"
# key tanpa masa hidup dilaporkan -1 oleh TTL
redis-cli TTL dasar:notulensiOK
-1Masa hidup dapat ditetapkan saat key dibuat melalui opsi EX pada SET, atau setelahnya dengan perintah EXPIRE terhadap key yang sudah ada. Demo kedaluwarsa berikut menetapkan masa hidup satu detik, menunggu dua detik, lalu memeriksa kondisi key tersebut. Hasil pemeriksaan menunjukkan key hilang tanpa perintah penghapusan apa pun.
# menyimpan key contoh
redis-cli SET dasar:kode-otp "135790"
# menetapkan masa hidup key selama satu detik
redis-cli EXPIRE dasar:kode-otp 1
# menunggu dua detik agar masa hidup habis
sleep 2
# key yang sudah kedaluwarsa dilaporkan tidak ada oleh EXISTS
redis-cli EXISTS dasar:kode-otp
# sisa masa hidup key yang sudah kedaluwarsa dilaporkan -2 oleh TTL
redis-cli TTL dasar:kode-otpOK
1
0
-2EXPIRE menjawab 1 karena masa hidup berhasil dipasang. Dua detik kemudian, EXISTS menjawab 0 dan TTL menjawab -2, yang berarti key dasar:kode-otp sudah kedaluwarsa dan dihapus oleh server tanpa perintah DEL apa pun. Bila masa hidup masih berjalan, TTL melaporkan sisa detik yang terus bergerak turun, misalnya nilai 45 pada key yang dibuat lima belas detik lalu dengan masa hidup 60 detik.
Kesalahan umum#
Kesalahan pertama adalah menaikkan key yang nilainya bukan bilangan bulat. INCR hanya bekerja pada nilai bilangan bulat, sedangkan string biasa ditolak dengan pesan error yang jelas.
# menyiapkan key berisi teks
redis-cli SET dasar:kota "Bandung"
# menaikkan key berisi teks memicu error
redis-cli INCR dasar:kotaOK
ERR value is not an integer or out of rangePesan ERR value is not an integer or out of range muncul karena Bandung bukan bilangan bulat. Perbaikannya mengikuti maksud semula: gunakan key penghitung baru yang diisi angka, atau hapus key lama bila isinya memang bukan penghitung.
Kesalahan kedua adalah menyimpan nilai berisi spasi tanpa tanda kutip. Shell memecah baris perintah pada setiap spasi, sehingga SET menerima lebih banyak argumen daripada yang diperbolehkan dan server menolaknya.
# menyimpan nilai berisi spasi tanpa tanda kutip
redis-cli SET dasar:salam Halo, RedisERR syntax errorPesan ERR syntax error dijawab server karena argumen Halo, dan Redis membuat struktur SET menjadi tidak sah. Penutupan nilai dengan tanda kutip, sebagaimana contoh pada bagian pembuka, menyatukan kedua kata itu menjadi satu argumen utuh.
Ringkasan#
SETmenyimpan dan menimpa nilai pada key, sedangkanGETmembacanya dan menjawab kosong bila key tidak ada.DELmenghapus key dan melaporkan jumlah key yang benar-benar terhapus.INCRmenaikkan penghitung bilangan bulat secara atomik dan mengembalikan nilai barunya.TTLmelaporkan sisa masa hidup dalam satuan detik, dengan-1untuk key tanpa masa hidup dan-2untuk key yang tidak ada.
Referensi#
- SET — Redis — Dokumentasi resmi perintah SET beserta opsi masa hidup seperti EX.
- GET — Redis — Dokumentasi resmi perintah GET untuk membaca nilai string.
- DEL — Redis — Dokumentasi resmi perintah DEL untuk menghapus satu atau lebih key.
- INCR — Redis — Dokumentasi resmi perintah INCR beserta perilaku atomiknya.
- TTL — Redis — Dokumentasi resmi perintah TTL beserta arti nilai -1 dan -2.