Isi kandungan:
- Data cache dalam ingatan
- Mengulangi data ke hamba
- Pemodelan data di kedai nilai utama
- Operasi pada data
- Evaluasi Redis
Video: 10 Extreme Weather Vehicles for Dominating the Snow and Ice 2024
Kedai nilai-kunci di NoSQL adalah semua tentang kelajuan. Anda boleh menggunakan pelbagai teknik untuk memaksimumkan kelajuan itu, dari data caching, untuk mendapatkan beberapa salinan data atau menggunakan struktur penyimpanan yang paling sesuai.
Data cache dalam ingatan
Oleh kerana data mudah diakses apabila disimpan dalam memori akses rawak (RAM), memilih kedai nilai utama yang cache data dalam RAM dapat mempercepat akses anda ke data, walaupun pada harga daripada kos pelayan yang lebih tinggi.
Selalunya, tradeoff ini layak dibuat. Anda boleh dengan mudah mengira peratusan data anda yang disimpan sering diminta. Jika anda tahu lima peratus biasanya diminta setiap beberapa minit, kemudian ambil lima peratus daripada saiz data anda dan tambahkan nombor itu sebagai ruang RAM kosong di pelayan pangkalan data anda.
Perlu diingat bahawa sistem operasi, aplikasi lain, dan pelayan pangkalan data mempunyai keperluan memori juga.
Mengulangi data ke hamba
Di kedai nilai utama, kunci tertentu disimpan pada salah satu pelayan dalam kelompok. Proses ini disebut partition utama . Ini bermakna, jika kunci ini sentiasa diminta, nod ini akan menerima sebahagian besar permintaan. Oleh itu, simpul ini akan lebih lambat daripada kelajuan permintaan purata anda, yang berpotensi mempengaruhi kualiti perkhidmatan kepada pengguna anda.
Untuk mengelakkan situasi ini, beberapa kedai nilai utama menyokong menambah replika baca sahaja, juga dirujuk sebagai hamba. Redis, Riak, dan Aerospike adalah contoh yang baik. Replikasi membolehkan kunci yang akan disimpan beberapa kali di beberapa pelayan, yang meningkatkan kelajuan tindak balas tetapi pada kos lebih banyak perkakasan.
Beberapa kedai nilai utama menjamin bahawa replika kunci akan selalu mempunyai nilai yang sama seperti tuan. Jaminan ini dipanggil sepenuhnya konsisten. Jika kemas kini berlaku pada pelayan induk yang memegang kunci, semua replika dijamin akan dikemas kini.
Tidak semua kedai nilai penting menjamin status ini (misalnya, Riak), jadi jika penting untuk dikemaskini pada milisaat, maka pilih pangkalan data yang replikanya konsisten sepenuhnya (seperti Aerospike).
Pemodelan data di kedai nilai utama
Banyak kedai nilai utama yang menyokong hanya struktur dasar untuk jenis nilai mereka, meninggalkan pemrogram aplikasi dengan tugas menafsirkan data. Sokongan jenis data mudah biasanya mengandungi rentetan, bilangan bulat, JSON, dan nilai binari.
Bagi banyak kes penggunaan, ini berfungsi dengan baik, tetapi kadang-kadang akses yang lebih berbutir kepada data berguna.Sebagai contoh, Redis menyokong jenis nilai data berikut:
-
String
-
List
-
Set
-
Sorted set
-
Hash maps
-
Array bit
-
log hyperlog
akan dipertimbangkan untuk mencocokkan julat nilai-nilai - seperti pertanyaan indeks nilai disusun mengikut tarikh, yang sangat berguna untuk mencari subset data ditaip.
Operasi pada data
Redis merangkumi operasi untuk menambah dan menurunkan nilai-nilai utama secara langsung, tanpa perlu melakukan set langkah-langkah pembaharuan (RMU) yang dibaca. Anda boleh berbuat demikian dalam satu urus niaga untuk memastikan tiada aplikasi lain mengubah nilai semasa pembaruan. Operasi spesifik jenis data ini termasuk menambah dan mengeluarkan item ke senarai dan set juga.
Anda juga boleh menyediakan fungsi automengkap pada antara muka pengguna aplikasi dengan menggunakan arahan Redis ZRANGEBYLEX. Perintah ini mengambil seperangkat kekunci yang sebahagiannya sepadan dengan rentetan. Jadi, jika anda menaip "NoSQL for" dalam bar carian aplikasi yang dibina di Redis, anda akan melihat cadangan "NoSQL For Dummies. "
Evaluasi Redis
Redis bangga menjadi kedai nilai penting yang sangat ringan tetapi sangat cepat. Ia pada asalnya direka untuk menjadi kedai nilai utama dalam memori, tetapi kini menawarkan storan data berasaskan cakera.
Anda boleh menggunakan Redis untuk melindungi data dengan membolehkan mod AOF (tambah fail sahaja) dan memerintahkan Redis untuk memaksa data ke cakera pada setiap pertanyaan (dikenali sebagai dipaksa fsync flushing ). AOF memang perlahan menulis, tentu saja, tetapi ia memberikan ketahanan yang lebih tinggi untuk data. Sedarlah, bahawa masih mungkin untuk kehilangan satu saat perintah.
Juga, Redis baru-baru ini menambah sokongan untuk clustering. Malah, pada masa penulisan ini, sokongan kluster Redis adalah dalam fasa ujian beta. Mujurlah, Redis menggunakan model kluster yang dikongsi bersama, dengan tuan untuk kunci dan hamba tertentu yang tidak pernah ditulis secara langsung oleh pelanggan; hanya tuan yang melakukannya. Menyediakan clustering tidak dikongsi dapat memudahkan Redis untuk melaksanakan clustering yang handal daripada itu untuk pangkalan data yang membolehkan penulis menuliskan semua replika.
Jika anda mahukan lapisan caching yang sangat laju, dalam memori cache di hadapan pangkalan data lain - MongoDB atau Riak biasa digunakan dengan Redis - kemudian menilai Redis sebagai pilihan. Sebagai sokongan untuk pengelompokan dan ketahanan data berkembang, mungkin Redis dapat mengatasi pangkalan data belakang lain.