• Tidak ada hasil yang ditemukan

REmote DIrectory Server ( R E D I S ) TUGAS RESUME

N/A
N/A
Protected

Academic year: 2021

Membagikan "REmote DIrectory Server ( R E D I S ) TUGAS RESUME"

Copied!
10
0
0

Teks penuh

(1)

REmote DIrectory Server

( R E D I S )

TUGAS RESUME

Oleh :

1210652030 Hendra Dwi Saputra

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH JEMBER

2 0 1 5

(2)

REmote DIctionary Server

(REDIS)

Apa itu REDIS?

REDIS adalah penyimpan nilai kunci sementara dan permanen berbasis open source dengan lisensi BSD. Hal ini sering disebut sebagai server struktur data dapat berisi string,

hash, list, set, sorted set, bitmap dan hyperlog. Anda dapat menjalankan operasi atomik pada

tipe data ini, seperti menambahkan string; menambahkan nilai dalam hash; memasukkan sebuah elemen ke dalam list; komputasi pesimpangan, himpunan dan perbedaan set; atau mendapatkan anggota yang memiliki ranking tertinggi di sebuah sorted set.

Untuk mendapatkan kinerja yang luar biasa, Redis bekerja dengan sebuah dataset di dalam memori. Tergantung dari penggunaan anda, anda dapat mempertahankannya dengan membuang dataset ke media penyimpanan sekali-kali, atau dengan menambahkan ke sebuah catatan. Ketahanan ini dapat secara opsional dinonaktifkan, jika anda hanya membutuhkan kaya-fitur, jaringan, dalam cache memori. Redis juga mendukung pengaturan biasa replikasi ansinkronus master-slave, dengan sinkronisasi pertama tanpa-terhenti yang sangat cepat, otomatis-koneksi-ulang dengan pembagian sinkronisasi-ulang dengan jaringan terpisah. Fitur-fitur yang lain adalah :

 Transaksi

 Pub/Sub

 Skrip Lua

 Kunci dengan waktu terbatas

 LRU eviction of keys

 Automatic failover

Anda dapat menggunakan Redis dari bahasa pemrograman umum di dunia. Redis ditulis dengan ANSI-C dan dapat bekerja di sistem POSIX umum seperti Linux, UNIX, BSD, OSX tanpa dependensi eksternal.

(3)

PUB/SUB

SUBSCRIBE, UNSUBSCRIBE dan PUBLISH mengimplementasikan paradigma pengiriman pesan secara PUBLISH/SUBSCRIBE (publikasi/langganan) yang mana pengirim (publishers) diprogram untuk tidak mengirim pesannya ke penerima tertentu (subscribers). Tetapi, pesan-pesan yang dipublikasikan ditandai ke dalam saluran-saluran, tanpa mengetahui apabila penerima ada (menerima) atau tidaknya. Penerima menyatakan keinginan pada satu atau beberapa saluran, dan hanya menerima pesan-pesan yang diinginkan, tanpa mengetahui apabila pengirim ada (mengirim) atau tidaknya. Ketidakterikatan antara pengirim dan penerima dapat memberikan skalabilitas dan topologi jaringan yang lebih dinamis. Misalnya untuk berlangganan saluran “musik” dan “film” klien menerbitkan sebuah SUBSCRIBE menetapkan nama dari saluran :

SUBSCRIBE musik film

Pesan-pesan disampaikan oleh klien yang lain ke saluran-saluran ini yang akan diedarkan oleh Redis ke semua klien yang berlangganan. Sebuah klien yang berlangganan ke satu atau beberapa saluran tidak perlu menerbitkan perintah, meskipun dia dapat berlangganan dan berhenti berlangganan ke dan dari saluran-saluran yang lain. Balasan dari operasi SUBSCRIBE dan UNSUBSCRIBE dikirimkan dalam bentuk pesan, sehingga klien dapat membaca sebuah aliran pesan yang cocok yang mana element pertama mengindikasikan tipe dari pesannya.

Format Pesan

Sebuah pesan adalah balasan berbentuk array (susunan) dengan tiga elemen. Elemen yang pertama merupakan bentuk dari pesan :

 subscribe : berarti kita telah berhasil berlangganan ke saluran yang diberikan sesuai dengan elemen kedua pada balasan. Elemen ketiga menyatakan jumlah saluran kita berlangganan.

 unsubscribe : berarti kita telah berhasil berhenti berlangganan dari saluran yang diberikan sesuai dengan elemen kedua pada balasan. Ketika elemen terakhir adalah kosong, maka kita tidak lagi berlangganan ke saluran apapun, dan klien dapat menerbitkan apapun perintah Redis ketika kita berada di luar tahap Pub/Sub.

(4)

 message : itu adalah pesan yang diterima dari sebuah perintah PUBLISH yang diterbitkan oleh klien lain. Elemen kedua adalah nama dari saluran berasal, dan elemen ketiga adalah muatan pesan sesungguhnya.

Basisdata & Pengujian

Pub/Sub tidak ada hubungannya dengan ruang kunci. Itu dibuat untuk tidak mengganggunya di level manapun, termasuk jumlah basisdata. Menerbitkan di basisdata 10, akan diterima oleh pelanggan pada basisdata 1. Jika ingin menguji beberapa macam, beri awalan pada saluran dengan nama dari lingkungannya (test, staging, production, ....).

Contoh Protokol Koneksi

SUBSCRIBE pertama kedua *3 $9 subscribe $5 pertama :1 *3 $9 Subscribe $6 Second :2

Pada titik ini, dari klien yang lain kita menerbitkan operasi PUBLISH pada saluran dengan nama kedua :

PUBLISH kedua Hello

Ini adalah yang diterima oleh klien pertama : *3

$7

(5)

$6 Kedua $5 Hello

Sekarang klien berhenti berlangganan dari seluruh saluran melalui perintah UNSUBSCRIBE tanpa argumen tambahan :

UNSUBSCRIBE *3 $11 unsubscribe $6 kedua :1 *3 $11 unsubscribe $5 pertama :0 Langganan Pencocokan-Pola

Implementasi Redis Pub/Sub mendukung pencocokan pola. Klien-klien dapat berlangganan pola ragam glob untuk menerima semua pesan yang terkirim ke saluran dengan nama yang cocok dengan pola yang diberikan. Sebagai contoh :

PSUBSCRIBE news.*

Akan menerima semua pesan terkirim ke saluran news.art.figurative, news.music.jazz, dan lain-lain. Semua pola ragam glob adalah valid, jadi beberapa wildcard sekaligus juga didukung.

(6)

Akan memberhentikan langganan dari sebuah klien dari pola tersebut. Tidak ada pelanggan lain yang terpengaruh dari panggilan ini. Pesan diterima sebagai hasil dari pencocokan pola dikirimkan dengan format yang berbeda :

 Tipe pesan dari pmessage : itu adalah sebuah pesan yang diterima sebagai hasil dari sebuah terbitan perintah PUBLISH oleh klien yang lain, mencocokkan sebuah langganan pencocokan pola. Elemen kedua adalah pola yang cocok sebenarnya, elemen ketiga adalah nama dari saluran berasal, dan elemen terakhir adalah muatan pesan aktual.

Mirip dengan SUBSCRIBE dan UNSUBSCRIBE, perintah PSUBSCRIBE dan PUNSUBSCRIBE diketahui oleh sistem mengirim sebuah pesan dari tipe psubscribe dan punsubscribe menggunakan format yang sama dengan format pesan subscribe dan unsubscribe.

Pencocokan pesan dengan langganan sebuah saluran atau pola

Sebuah klien dapat menerima sebuah pesan tunggal berkali-kali jika langganannya ke beberapa pola dicocokkan dengan pesan yang dipublikasikan, atau jika dia berlangganan pada kedua pola dan saluran yang cocok dengan pesan. Seperti contoh dibawah ini :

SUBSCRIBE foo PSUBSCRIBE f*

Pada contoh di atas, jika sebuah pesan dikirimkan ke saluran foo, maka klien akan menerima dua pesan : satu tipe message dan satu tipe pmessage.

Arti dari penghitungan langganan dengan pencocokan pola

Pada tipe pesan subscribe, unsubscribe, psubscribe dan punsubscibe, argumen terakhir adalah perhitungan pelanggan yang terus aktif. Jumlah ini adalah total angka sebenarnya dari saluran dan pola dimana klien tetap berlanggan. Jadi klien akan keluar dari tahap Pub/Sub ketika penghitungan ini menjadi nol akibat dari berhentinya berlangganan dari semua saluran dan pola.

(7)

Petunjuk implementasi pustaka klien

Karena semua pesan diterima berisi langganan nyata menyebabkan pustaka pengiriman pesan (saluran di dalam tipe message, dan pola nyata di tipe pmessage) klien memungkinkan mengikat langganan nyata untuk callback (hal ini dapat berupa fungsi anonimus, blok, pointer fungsi), menggunakan sebuah tabel hash. Ketika pesan diterima sebuah pencarian O(1) dapat diselesaikan untuk mengantarkan pesan ke callback terdaftar.

(8)

INSTALASI dan KONFIGURASI

REDIS di Gentoo Linux

1. Instalasi Redis di Gentoo Linux

# emerge -p dev-db/redis

2. Konfigurasi Redis di Gentoo Linux

# eselect rc add redis # eselect rc start redis

(9)

PERCOBAAN PUB/SUB

MENGGUNAKAN REDIS

1. Percobaan ini akan mengimplementasikan dasar-dasar Pub/Sub pada Redis, dengan membuat 3 (tiga) saluran yaitu musik, video dan berita dengan 2 (dua) klien yang masing-masing klien pertama berlangganan saluran musik dan berita, sedangkan klien kedua berlangganan saluran video dan berita. Untuk berlangganan menggunakan perintah SUBSCRIBE.

Klien Pertama Klien Kedua

SUBSCRIBE musik berita SUBSCRIBE video berita

2. Jika kita menerbitkan pesan dengan menggunakan perintah PUBLISH, maka klien akan menerima pesan sesuai dengan saluran dimana mereka berlangganan. Sebagai contoh pertama kita akan mengirimkan pesan ke saluran musik.

PUBLISH musik “Meghan Trainor - All About That Bass”

Klien Pertama Klien Kedua

Dalam contoh ini, hanya klien pertama yang mendapatkan pesan karena hanya dia yang berlangganan saluran musik, sedangkan klien kedua tidak mendapatkan pesan.

(10)

3. Kemudian kita menerbitkan pesan untuk saluran video, maka klien kedua yang berlangganan saluran video saja yang menerima pesan. Sedangkan klien pertama tidak menerima pesan karena tidak berlangganan saluran tersebut.

PUBLISH video “Avengers 2 - Age of Ultron”

Klien Pertama Klien Kedua

4. Yang terakhir adalah ketika diterbitkan sebuah pesan ke saluran berita dimana kedua klien tersebut berlangganan saluran berita akan menerima pesan yang diterbitkan.

PUBLISH berita “Uang Muka Mobil Pejabat Naik”

Referensi

Dokumen terkait

Apabila sampel tersebut dibebani dengan beban yang lebih kecil dari pada beban maksimum yang pernah diterima oleh sampel tersebut, tegangan horisontal residual akan tetap

Kemampuan Imperta cylindrica dan Leersia hexandra dalam menempati sebagian besar lokasi penelitian menunjukkan bahwa kedua jenis ini merupakan jenis dominan yang

adalah Akhlak yang terdapat dalam novel Sang Pemimpi karya Andrea Hirata.. yang meliputi akhlak terhadap Allah, akhlak terhadap diri sendiri, dan

Pengguna  gedung  wajib  membayar  biaya  sewa  gedung  pembayaran  pertama  minimal  50%  pada  4  bulan  sebelum  pelaksanaan  acara  dan  melunasi 

asetat, borneol, simen. Kina, damar, malam.. as. CI CINN NNAM AMOM OMI COR I CORTE TEX X..

(1) Dalam hal berdasarkan hasil verifikasi keabsahan dokumen dan/atau visitasi lapangan sebagaimana dimaksud dalam Pasal 15 ayat (1) ditemukan bukti

Valbury Asia Securities or their respective employees and agents makes any representation or warranty or accepts any responsibility or liability as to, or in relation to, the

Pilihan Ukuran Sensori Etika Lingkungan fungsionalitas DLL Kalori Faktor Mutu Faktor Keamanan Aman Jasmani Aman rohani NILAI PRODUK KAKAO?. NILAI