Jawaban Latihan Redis

Sebelum membaca artikel ini, sebaiknya baca artikel sebelumnya terlebih dahulu. Apa yang tertulis dalam artikel ini hanyalah pembahasan dari latihan-latihan dari artikel sebelumnya. Semoga penjelasan pada tulisan ini bisa dipahami.

 

#Apa yang terjadi setelah perintah berikut ini dijalankan ? Mengapa bisa begitu ?
SET angka “1”
TTL angka

Jawab :

j1
Gambar 1

Perintah TTL memberikan integer reply -1. Ini artinya, key tersebut (dalam kasus ini angka) tidak akan pernah hangus. Sebuah key dapat dibuat agar hangus setelah jangka waktu tertentu menggunakan perintah EXPIRE. Dengan perintah EXPIRE, kita dapat menghapus suatu key secara otomatis setelah waktu yang ditentukan.

###
Format dari perintah EXPIRE adalah EXPIRE key time.
Contoh : EXPIRE angka 10

Cara lain : SET key value EX time
Contoh : SET angka 10 EX 10

Untuk membatalkan perintah EXPIRE, gunakan perintah PERSIST key sebelum waktu habis.
###

Key tersebut akan dihapus setelah 10 detik. Coba saja lakukan GET angka, maka integer reply akan memberikan -2 yang artinya key tidak ditemukan oleh Redis alias sudah lenyap.

#Apa yang terjadi setelah perintah berikut ini dijalankan ? Mengapa bisa begitu ?
SET angka “1”
SETNX angka 9
GET angka

Jawab :

j2
Gambar 2

SETNX berfungsi sama seperti SET. Namun perbedaannya, jika key yang dibuat dengan SETNX sudah ada sebelumnya maka value yang dimiliki key tersebut tidak diubah. Pada soal ini, integer reply ketika kita melakukan perintah SETNX adalah 0. Ini artinya, tidak ada perubahan yang dilakukan terhadap key tersebut.

###
SETNX adalah kependekan dari “SET if Not eXist”

integer reply pada perintah SETNX :
0 : jika value pada key tidak berubah. Ini karena key sudah ada sebelumnya
1 : jika ada perubahan value dari key yang ditulis. Dengan kata lain, key yang dimaksud belum ada
###

Pada saat key dipanggil dengan GET, value yang terdapat pada key angka tidak berubah menjadi 9.

#Suatu key bernama angka mempunyai value 8. Bagaimana cara mengubah value dari key tersebut menjadi 8.5 ?
Jawab :

j3
Gambar 3

Untuk menambah value dengan float (bilangan desimal), digunakan perintah INCRBYFLOAT dengan format INCRBYFLOAT key bilangan. Perhatikan penggunaan perintah ini pada contoh di atas. Tidak ada perintah DCRBYFLOAT, sehingga jika ingin mengurangi value dengan bilangan float, tuliskan angka negatif pada perintah INCRBYFLOAT.

###
Perhatikan perbedaan reply pada soal ini dengan soal sebelumnya. Bentuk reply seperti ini disebut bulk string reply.

Apabila kita menuliskan key yang belum ada sebelumnya, perintah INCRBYFLOAT akan bekerja seperti SET lalu mengeluarkan hasil sesuai angka yang ditulis. Redis memiliki ketelitian hingga 17 angka di belakang koma.
###

Coba ketik perintah INCRBYFLOAT angka 99.9
Entah mengapa saya malah mendapat error reply. Setelah saya cari di internet, ternyata saya perlu upgrade Redis ke versi yang lebih baru. Padahal saya menggunakan redis versi 2.8 (versi terbaru saat tulisan ini dibuat adalah versi 3.0.0).

#Suatu key bernama angka mempunyai value 8. Apa yang terjadi jika perintah di bawah ini dijalankan ?
APPEND angka 8
GET angka

Jawab :

j4
Gambar 4

Seperti yang terlihat pada gambar di atas, perintah APPEND menambahkan angka di belakang value. Value yang lama akan diikuti oleh karakter yang diberikan oleh perintah APPEND.

#Jalankan perintah berikut ini ! Apa fungsi perintah tersebut ?
SET angka 8
INCRBY angka 3
GETSET angka 0

Jawab :

j5
Gambar 5

Pada awalnya value dari angka adalah 8 kemudian menjadi 11 setelah ditambahkan 3. Setelah perintah GETSET diberikan, Redis mengganti value yang telah tersimpan dengan string yang baru dan memberikan reply dengan value yang sebelumnya. Jika setelah itu perintah GET diberikan, maka jawaban dari server adalah 0. GETSET juga dapat mengganti value lama dengan karakter selain angka.

#Dari contoh diatas, munculkan semua string menggunakan perintah MSET !
Jawab :

j6
Gambar 6

Perintah MSET digunakan untuk membuat beberapa key sekaligus. Sama seperti SET, jika key sudah ada sebelumnya maka value-nya diganti dengan yang baru. Untuk memisahkan antara suatu key dengan key yang lain cukup menggunakan spasi, bukan koma.

 

 

Waaw… Keren sekali !

Komentarin dooong...

Your email address will not be published. Required fields are marked *