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.
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.