Mengenai MongoDB dan Redis

Sebagaimana RDBMS (Relational Database Management System) seperti MySQL, Oracle, PostgreSQL, maupun Microsoft SQL Server. NoSQL juga memiliki banyak pilihan. Bilamana pembaca belum begitu mengetahui apa itu yang disebut NoSQL, dalam bahasa singkatnya NoSQL adalah sebuah penyimpanan data (basis data) tanpa menggunakan tabel yang terelasi.

Beragam pilihan vendor (penyedia) NoSQL memiliki karakteristik, dan fitur yang berbeda-beda. Namun memiliki kesamaan manfaat dan fungsi diantara mereka, meski tidak semuanya. Dan yang pasti, teknis penggunaan maupun kerangka arsitektur beberapa vendor pun pasti berbeda.

Berikut adalah beberapa penyedia NoSQL yang dapat dibilang sebagai NoSQL cukup populer dengan performa cukup bagus dan juga banyak dipakai, seperti:

  • MongoDB
  • Apache Cassandra
  • Redis
  • Amazon DynamoDB
  • Google BigTable
  • Apache CouchDB, CouchBase
  • dan masih banyak lagi

Pada kesempatan yang “mantap jiwa” ini, penulis akan membahas mengenai dua NoSQL populer nan tangguh, yakni MongoDB dan Redis. Berikut sekilas pembahasannya:

MongoDB

Rilis pertama MongoDB terekam pada awal tahun 2009, tepatnya bulan Februari. MongoDB adalah salah satu database yang terklasifikasi sebagai NoSQL. Struktur penyimpanan MongoDB berbentuk dokumen atau document oriented database.

Secara teknis, mesin MongoDB akan menyimpan data yang terkirim dalam bentuk dokumen di dalam server. Sedangkan isi dari dokumen tersebut berupa skema JSON. Bisa diibaratkan jika kita menggunakan RDMS maka field-field yang berada pada tabel diletakkan atau disimpan sebagai file / dokumen.

MongoDB Collections

MongoDB Collections

Pada kasus yang sebenarnya MongoDB dipakai oleh beberapa pengembang website sebagai replacement RDBMS. Dalam artian bahwa MongoDB dapat dipakai seutuhnya sebagai kebutuhan penyimpanan data website, tanpa RDBMS tentunya. Mengapa demikian? Mari kita lihat fitur-fitur yang ada pada MongoDB:

  • Kemudahan Indexing Data

MongoDB meskipun merupakan jenis NoSQL, telah memiliki sistem indexing (pengindekan) data didalamnya. Sebagaimana RDBMS yang pasti memiliki sistem indexing, MongoDB juga menggunakan sistem Primary maupun Secondary Key untuk mengoptimalkan query data.

  • High Availability dan Scaling

Sebagai NoSQL, fitur High Availability maupun Scaling adalah nyawa dari MongoDB. Dalam kondisi tertentu, MongoDB dapat dikonfigurasi agar database dapat terdistribusi ke seluruh server bilamana terjadi permasalahan pada server tertentu maupun server database utama.

  • Gratis

Apabila pembaca memiliki server atau VPS (bukan hosting) nganggur. Pembaca dapat melakukan instalasi langsung MongoDB pada server tersebut secara gratis. Tentunya dengan konfigurasi sendiri.

MongoDB adalah salah satu open source project yang dikembangkan oleh MongoDB inc. Meskipun begitu, MongoDB inc. juga menyediakan versi Enterprise, bilamana pembaca ingin menggunakan MongoDB pada server yang berskala sangat besar.

Redis

Sebagai salah satu NoSQL, Redis sangat populer karena kecepatan maupun durabilitas (ketahanan) sebagai salah satu sistem database untuk penyimpanan. Redis menyimpan data utama pada memory (RAM) server yang dapat dikonfigurasi untuk ditransfer pada disk server.

Karena kecepatannya, Redis umumnya dipakai untuk cache data bagi aplikasi web. Selain itu Redis juga dipakai sebagai penunjang kinerja RDBMS untuk penyimpanan Key data tertentu. Redis juga sangat mumpuni sebagai media penyimpanan untuk Key-Value Store.

Berikut adalah fitur-fitur utama yang dimiliki Redis:

  • Replikasi dan Sinkronisasi

Redis memiliki fitur replikasi yang cukup mudah untuk dikonfigurasi (menurut pengalaman penulis). Fitur replikasi Redis juga dibarengi dengan fitur sinkronisasi antara master maupun slave secara default. Hal ini tentunya menjadikan Redis cukup scalable untuk digunakan.

  • Pub/Sub Command

Fitur berguna lain yang dimiliki Redis adalah fitur Publish dan Subscribe. Pada kasus tertentu, fitur ini biasa dipakai pada sistem aplikasi realtime semacam Chat Apps atau Push Notification.

  • Sistem Transaksi

Redis memiliki sistem transaksi yang unik dibanding NoSQL lain. Secara eksplisit, transaksi data pada Redis dapat berupa single transaction maupun multi transaction (block). Kelebihan sistem Multi pada Redis adalah operasi data tidak akan tereksekusi keseluruhan bilamana terjadi masalah pada eksekusi tertentu, ataupun terjadi masalah pada Client seperti koneksi antara client dan server terputus.


Kesimpulan

MongoDB

NoSQL versi MongoDB sangat baik dan berguna dipakai sebagai replacement RDBMS yang ada, semisal MySQL atau Microsoft SQL Server. Namun yang perlu digaris bawahi adalah transisi penggunaan antara MongoDB dan RDBMS. Struktur, arsitektur dan juga penggunaan fungsi jelas berbeda antara keduanya.

Redis

Berbeda dengan MongoDB, Redis sangat baik dipakai sebagai Key-Value Store penunjang RDBMS, sistem Cache dan penunjang realtime apps. Dengan kelebihan kecepatan akses data, Redis sangat baik digunakan untuk caching data selain NoSQL lain seperti MemcachedDB.

Both of Them

NoSQL umumnya dipakai oleh website yang memiliki struktur data cukup kompleks, besar dan tak terhitung oleh jari. Namun tidak menutup kemungkinan website berskala kecil untuk tidak menggunakan NoSQL, semua itu sesuai dengan kebutuhan sang pengembang dan tentunya arsitektur aplikasi.

Kemudian dari pada itu, NoSQL juga digunakan untuk menunjang kebutuhan data yang dipakai oleh website dengan performa pengambilan data yang lebih cepat, struktur yang lebih dinamis, dan scalable (scaling able) dibanding RDBMS pada umumnya. Kombinasi antara RDBMS dengan NoSQL akan menjadikan website menjadi lebih greget saat diakses, dengan syarat arsitektur penyimpanan antara kedua belah pihak (RDBMS maupun NoSQL) telah dirancang sedemikian rupa untuk menghindari redundancy data.

 

 
Muhammad K Huda

Muhammad K Huda

A non exhausted blogger person within fullstack engineer (spicy food), open source religion, self-taught driver and maybe you know or don't like it. Simply says, Hello from Me!

 

Leave a Reply

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

Chaptcha * Time limit is exhausted. Please reload CAPTCHA.