Mengatur instans Azure Cache for Redis
Azure Cache for Redis memiliki penawaran tingkat berbeda yang memberikan fleksibilitas dalam pilihan ukuran dan fitur cache. Melalui penskalaan, Anda dapat mengubah ukuran, tingkat, dan jumlah simpul setelah membuat instans cache agar sesuai dengan kebutuhan aplikasi Anda. Artikel ini memperlihatkan kepada Anda cara menskalakan cache Anda menggunakan portal Azure, ditambah alat seperti Azure PowerShell dan Azure CLI.
Jenis penskalaan
Pada dasarnya ada dua cara untuk menskalakan Instans Azure Cache for Redis:
Peningkatan skala meningkatkan ukuran Komputer Virtual (VM) yang menjalankan server Redis, menambahkan lebih banyak memori, CPU Virtual (vCPU), dan bandwidth jaringan. Peningkatan skala juga disebut penskalakan vertikal. Kebalikan dari peningkatan skala adalah menurunkan skala.
Penskalaan membagi instans cache menjadi lebih banyak simpul dengan ukuran yang sama, meningkatkan memori, vCPU, dan bandwidth jaringan melalui paralelisasi. Peluasan skala juga disebut sebagai penskalakan horizontal atau sharding. Kebalikan dari penskalaan keluar adalah Penskalaan masuk Di komunitas Redis, peluasan skala sering disebut pengklusteran.
Cakupan ketersediaan
Tingkat | Dasar dan Standar | Premium | Enterprise dan Enterprise Flash |
---|---|---|---|
Meningkatkan skala | Ya | Ya | Ya |
Penurunan Skala | Ya | Ya | Tidak |
SQL Server Integration Services Scale Out | Tidak | Ya | Ya |
Menskalakan Masuk | Tidak | Ya | Tidak |
Kapan harus menskalakan
Anda dapat menggunakan fitur pemantauan Azure Cache for Redis untuk memantau kesehatan dan performa cache Anda. Gunakan informasi tersebut untuk menentukan kapan harus menskalakan cache.
Anda dapat memantau metrik berikut untuk menentukan apakah Anda perlu menskalakan.
- Muat Server Redis
- Beban server Redis tinggi berarti bahwa server tidak dapat mengimbangi permintaan dari semua klien. Karena server Redis adalah proses berulir tunggal, biasanya lebih membantu untuk meluaskan skala daripada meningkatkan skala. Penskalaan dengan mengaktifkan pengklusteran membantu mendistribusikan fungsi overhead di beberapa proses Redis. Penskalaan juga membantu mendistribusikan enkripsi/dekripsi TLS dan koneksi/pemutusan sambungan, mempercepat instans cache menggunakan TLS.
- Peningkatan skala masih dapat membantu dalam mengurangi beban server karena tugas latar belakang dapat memanfaatkan lebih banyak vCPU dan membebaskan utas untuk proses server Redis utama.
- Tingkat Enterprise dan Enterprise Flash menggunakan Redis Enterprise daripada sumber terbuka Redis. Salah satu keuntungan dari tingkatan ini adalah proses server Redis dapat memanfaatkan beberapa vCPU. Dengan beberapa vCPU, peningkatan dan penskalaan di tingkat ini dapat membantu dalam mengurangi beban server. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk tingkat Enterprise dan Enterprise Flash azure Cache for Redis.
- Penggunaan Memori
- Penggunaan memori tinggi menunjukkan bahwa ukuran data Anda terlalu besar untuk ukuran cache saat ini. Pertimbangkan untuk menskalakan ke ukuran cache dengan memori yang lebih besar. Peningkatan skala atau peluasan skala efektif di sini.
- Koneksi klien
- Setiap ukuran cache memiliki batas jumlah koneksi klien yang dapat didukungnya. Jika koneksi klien Anda mendekati batas ukuran cache, pertimbangkan untuk meningkatkan skala ke tingkat yang lebih besar. Penskalaan keluar tidak meningkatkan jumlah koneksi klien yang didukung.
- Untuk informasi selengkapnya tentang batas koneksi menurut ukuran cache, lihat Harga Azure Cache for Redis.
- Bandwidth Jaringan
- Jika server Redis melebihi bandwidth yang tersedia, permintaan klien dapat mengalami waktu habis karena server tidak dapat mendorong data ke klien dengan cukup cepat. Untuk melihat berapa banyak bandwidth sisi server yang digunakan, periksa metrik "Cache Read" dan "Cache Write". Jika server Redis Anda melebihi bandwidth jaringan yang tersedia, Anda harus mempertimbangkan untuk meluaskan skala atau meningkatkan skala ke ukuran cache yang lebih besar dengan bandwidth jaringan yang lebih tinggi.
- Untuk cache tingkat Perusahaan menggunakan kebijakan kluster Enterprise, penskalaan tidak meningkatkan bandwidth jaringan.
- Untuk informasi selengkapnya tentang bandwidth yang tersedia di jaringan berdasarkan ukuran cache, lihat FAQ perencanaan paket Azure Cache for Redis.
- Pemindaian Pertahanan Internal
- Pada cache C0 dan C1 Standard, sementara pemindaian Defender internal berjalan pada VM, Anda mungkin melihat lonjakan singkat dalam beban server yang tidak disebabkan oleh peningkatan permintaan cache. Anda melihat latensi yang lebih tinggi untuk permintaan saat pemindaian Defender internal dijalankan pada tingkat ini beberapa kali sehari. Cache pada tingkat C0 dan C1 hanya memiliki satu inti untuk multitugas, membagi pekerjaan melayani pemindaian Defender internal dan permintaan Redis. Anda dapat mengurangi efek dengan menskalakan ke penawaran tingkat yang lebih tinggi dengan beberapa inti CPU, seperti C2.
- Peningkatan ukuran cache pada tingkat yang lebih tinggi membantu mengatasi masalah latensi apa pun. Selain itu , di tingkat C2 , Anda memiliki dukungan untuk sebanyak 2.000 koneksi klien.
Untuk informasi selengkapnya tentang cara menentukan tingkat harga cache mana yang akan digunakan, lihat Memilih tingkat yang tepat dan FAQ perencanaan paket Azure Cache for Redis.
Catatan
Untuk informasi selengkapnya tentang cara mengoptimalkan proses penskalaan, lihat praktik terbaik untuk panduan penskalaan
Prasyarat/batasan penskalaan Azure Cache for Redis
Anda dapat meningkatkan/menurunkan skala ke tingkat harga yang berbeda dengan batasan berikut:
- Anda tidak dapat menurunkan skala dari tingkat harga yang lebih tinggi ke tingkat harga yang lebih rendah.
- Anda tidak dapat menskalakan dari cache Enterprise atau Enterprise Flash ke tingkat lain.
- Anda tidak dapat menurunkan skala dari cache Premium ke cache Standar atau Dasar.
- Anda tidak dapat menurunkan skala dari cache Standar ke cache Dasar.
- Anda dapat menskalakan dari cache Dasar ke cache Standar tetapi Anda tidak dapat mengubah ukurannya secara bersamaan. Jika membutuhkan ukuran yang berbeda, Anda nanti dapat melakukan operasi pengaturan skala ke ukuran yang diinginkan.
- Anda tidak dapat menaikkan skala dari cache Dasar langsung ke cache Premium. Pertama, atur skala dari Dasar ke Standar dalam satu operasi pengaturan skala, lalu dari Standar ke Premium dalam operasi pengaturan skala berikutnya.
- Anda tidak dapat menskalakan dari ukuran yang lebih besar ke ukuran C0 (250 MB). Namun, Anda dapat menskalakan ke ukuran lain dalam tingkat harga yang sama. Misalnya, Anda dapat menskalakan dari C5 Standard ke C1 Standard.
- Anda tidak dapat menskalakan dari cache Premium, Standar, atau Dasar hingga cache Enterprise atau Enterprise Flash .
- Anda tidak dapat menskalakan antara Enterprise dan Enterprise Flash.
Anda dapat menskalakan keluar/masuk dengan batasan berikut:
- Peluasan skala hanya didukung pada tingkat Premium, Enterprise, dan Enterprise Flash .
- Skala masuk hanya didukung pada tingkat Premium .
- Pada tingkat Premium, pengklusteran harus diaktifkan terlebih dahulu sebelum penskalakan masuk atau keluar.
- Pada tingkat Premium, dukungan untuk peluasan skala hingga 10 pecahan umumnya tersedia. Dukungan hingga 30 pecahan dalam pratinjau. (Untuk cache dengan dua replika, batas shard adalah 20. Dengan tiga replika, batas shard adalah 15.)
- Hanya tingkat Enterprise dan Enterprise Flash yang dapat meningkatkan dan menskalakan secara bersamaan.
Cara menskalakan - Tingkat Dasar, Standar, dan Premium
Cara meningkatkan dan memperluas skala - Tingkat Enterprise dan Enterprise Flash
Tingkat Enterprise dan Enterprise Flash dapat meningkatkan dan meluaskan skala dalam satu operasi. Tingkatan lain memerlukan operasi terpisah untuk setiap tindakan.
Perhatian
Tingkat Enterprise dan Enterprise Flash belum mendukung penurunan skala atau skala dalam operasi.
Menskalakan menggunakan portal Azure
Untuk menskalakan cache Anda, telusuri ke cache di portal Azure dan pilih Skalakan dari menu Sumber Daya.
Untuk meningkatkan skala, pilih jenis Cache yang berbeda lalu pilih Simpan.
Penting
Anda hanya dapat meningkatkan skala saat ini. Anda tidak dapat menurunkan skala.
Untuk meluaskan skala, tingkatkan penggerak Kapasitas . Peningkatan kapasitas dalam kenaikan dua. Jumlah ini mencerminkan berapa banyak simpul Redis Enterprise yang mendasar yang ditambahkan. Angka ini selalu merupakan kelipatan dari dua untuk mencerminkan simpul yang ditambahkan untuk pecahan primer dan replika.
Penting
Anda hanya dapat meluaskan skala, meningkatkan kapasitas, saat ini. Anda tidak dapat menskalakan masuk.
Saat cache diskalakan ke tingkat baru, pemberitahuan Scaling Redis Cache ditampilkan.
Saat pengaturan skala selesai, status berubah dari Pengaturan skala ke Menjalankan.
Mengatur skala menggunakan PowerShell
Anda dapat menskalakan instans Azure Cache for Redis dengan PowerShell dengan menggunakan cmdlet Update-AzRedisEnterpriseCache . Anda dapat memodifikasi Sku
properti untuk meningkatkan skala instans. Anda dapat memodifikasi Capacity
properti untuk memperluas skala instans. Contoh berikut menunjukkan cara menskalakan cache bernama myCache
ke instans Enterprise E20 (25 GB) dengan kapasitas 4.
Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku Enterprise_E20 -Capacity 4
Atur skala menggunakan Azure CLI
Untuk menskalakan instans Azure Cache for Redis Anda menggunakan Azure CLI, panggil perintah az redisenterprise update . Anda dapat memodifikasi sku
properti untuk meningkatkan skala instans. Anda dapat memodifikasi capacity
properti untuk memperluas skala instans. Contoh berikut menunjukkan cara menskalakan cache bernama myCache
ke instans Enterprise E20 (25 GB) dengan kapasitas 4.
az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "Enterprise_E20" --capacity 4
Tanya Jawab Umum terkait pengaturan skala
Daftar berikut ini berisi jawaban atas pertanyaan umum tentang pengaturan skala Azure Cache for Redis.
- Dapatkah saya mengatur skala ke, dari, atau dalam cache Premium?
- Setelah mengatur skala, apakah saya harus mengubah nama cache atau tombol akses saya?
- Bagaimana cara kerja pengaturan skala?
- Apakah saya kehilangan data dari cache saya selama penskalakan?
- Dapatkah saya menggunakan semua fitur tingkat Premium setelah penskalaan?
- Apakah pengaturan database kustom saya terpengaruh selama pengaturan skala?
- Apakah cache saya akan tersedia selama pengaturan skala?
- Apakah ada batasan penskalaan dengan geo-replikasi?
- Operasi yang tidak didukung
- Berapa lama waktu yang dibutuhkan untuk pengaturan skala?
- Bagaimana cara mengetahui kapan pengaturan skala selesai?
- Apakah saya perlu membuat perubahan pada aplikasi klien saya untuk menggunakan pengklusteran?
- Bagaimana kunci didistribusikan dalam kluster?
- Berapa ukuran cache terbesar yang bisa saya buat?
- Apakah semua klien Redis mendukung pengklusteran?
- Bagaimana cara menyambungkan ke cache saya saat pengklusteran diaktifkan?
- Bisakah saya langsung tersambung ke shard individual cache saya?
- Bisakah saya mengonfigurasi pengklusteran untuk cache yang dibuat sebelumnya?
- Bisakah saya mengonfigurasi pengklusteran untuk cache dasar atau standar?
- Bisakah saya menggunakan pengklusteran dengan Penyedia Session State ASP.NET Redis dan "Penembolokan Output?
- Saya mendapatkan pengecualian MOVE saat menggunakan StackExchange.Redis dan pengklusteran, apa yang harus saya lakukan?
- Apa perbedaan antara Pengklusteran OSS dan Pengklusteran Perusahaan pada cache tingkat Perusahaan?
- Berapa banyak shard yang digunakan cache tingkat Perusahaan?
Dapatkah saya mengatur skala ke, dari, atau dalam cache Premium?
- Anda tidak dapat menurunkan skala dari cache Premium ke tingkat harga Dasar atau Standar.
- Anda dapat mengatur skala dari satu tingkat harga cache Premium ke tingkat lainnya.
- Anda tidak dapat menaikkan skala dari cache Dasar langsung ke cache Premium. Pertama, atur skala dari Dasar ke Standar dalam satu operasi pengaturan skala, lalu dari Standar ke Premium dalam operasi pengaturan skala berikutnya.
- Anda tidak dapat menskalakan dari cache Premium ke cache Enterprise atau Enterprise Flash .
- Jika Anda mengaktifkan pengklusteran saat membuat cache Premium , Anda dapat mengubah ukuran kluster. Jika cache Anda dibuat tanpa mengaktifkan pengklusteran, Anda dapat mengonfigurasi pengklusteran di lain waktu.
Setelah pengaturan skala, apakah saya harus mengubah nama cache atau tombol akses saya?
Tidak, nama dan kunci cache Anda tidak berubah selama operasi pengaturan skala.
Bagaimana cara kerja pengaturan skala?
- Saat Anda menskalakan cache Dasar ke ukuran yang berbeda, cache dimatikan, dan cache baru disediakan menggunakan ukuran baru. Selama waktu ini, cache tidak tersedia dan semua data dalam cache hilang.
- Saat cache Dasar diatur skalanya ke cache Standar, cache replika disediakan dan data disalin dari cache utama ke cache replika. Cache tetap tersedia selama proses pengaturan skala.
- Saat Anda menskalakan cache Standard, Premium, Enterprise, atau Enterprise Flash ke ukuran yang berbeda, salah satu replika dimatikan dan diprovisikan ulang ke ukuran baru dan data yang ditransfer, dan kemudian replika lainnya melakukan failover sebelum diprovisikan ulang, mirip dengan proses yang terjadi selama kegagalan salah satu simpul cache.
- Saat Anda menghapus cache dalam kluster, shard baru akan diprovisikan dan ditambahkan ke kluster server Redis. Data kemudian dipartisi ulang di semua shard.
- Saat Anda melakukan penskalaan pada cache dalam kluster, data pertama akan dipartisi ulang dan kemudian ukuran cluster dikurangi menjadi shard yang diperlukan.
- Dalam beberapa kasus, seperti menskalakan atau memigrasikan cache Anda ke kluster yang berbeda, alamat IP cache yang mendasarinya dapat berubah. Catatan DNS untuk cache berubah dan transparan untuk sebagian besar aplikasi. Namun, jika Anda menggunakan alamat IP untuk mengonfigurasi koneksi ke cache Anda, atau untuk mengonfigurasi NSG, atau firewall yang memungkinkan lalu lintas ke cache, aplikasi Anda mungkin mengalami masalah saat menyambungkan setelah catatan DNS diperbarui.
Apakah saya kehilangan data dari cache saya selama penskalakan?
- Saat cache Dasar diatur skalanya ke ukuran baru, semua data akan hilang dan cache tidak tersedia selama operasi penskalaan.
- Saat cache Dasar diatur skalanya ke cache Standar, data dalam cache biasanya dipertahankan.
- Saat Anda menskalakan cache Standard, Premium, Enterprise, atau Enterprise Flash ke ukuran yang lebih besar, semua data biasanya dipertahankan. Saat Anda menskalakan cache Standar atau Premium ke ukuran yang lebih kecil, data dapat hilang jika ukuran data melebihi ukuran baru yang lebih kecil saat cache diturunkan skalanya. Jika data hilang saat menurunkan skala, kunci dipaksa keluar menggunakan kebijakan eviction allkeys-lru.
Dapatkah saya menggunakan semua fitur tingkat Premium setelah penskalaan?
Tidak, beberapa fitur hanya dapat diatur saat Anda membuat cache di tingkat Premium, dan tidak tersedia setelah penskalakan.
Fitur-fitur ini tidak dapat ditambahkan setelah Anda membuat cache Premium:
- Injeksi jaringan virtual
- Menambahkan redundansi zona
- Menggunakan beberapa replika per primer
Untuk menggunakan salah satu fitur ini, Anda harus membuat instans cache baru di tingkat Premium.
Apakah pengaturan database kustom saya terpengaruh selama pengaturan skala?
Jika Anda mengonfigurasi nilai kustom untuk pengaturan databases
selama pembuatan cache, perlu diingat bahwa beberapa tingkat harga memiliki batas database yang berbeda. Berikut beberapa pertimbangan saat pengaturan skala dalam skenario ini:
- Saat Anda menskalakan ke tingkat harga dengan batas yang lebih rendah
databases
dari tingkat saat ini:- Jika Anda menggunakan nomor default
databases
, yaitu 16 untuk semua tingkatan harga, tidak ada data yang hilang. - Jika Anda menggunakan nomor kustom
databases
yang termasuk dalam batas tingkat yang Anda impor, pengaturandatabases
ini disipman dan tidak ada data yang hilang. - Jika Anda menggunakan jumlah kustom
databases
yang melebihi batas tingkat baru, pengaturandatabases
diturunkan ke batas tingkat baru dan semua data dalam database yang dihapus hilang.
- Jika Anda menggunakan nomor default
- Saat mengatur skala ke tingkat harga dengan batas
databases
yang sama atau lebih tinggi dari tingkat saat ini, pengaturandatabases
Anda disimpan dan tidak ada data yang hilang.
Meskipun cache Standard, Premium, Enterprise, dan Enterprise Flash memiliki SLA untuk ketersediaan, tidak ada SLA untuk kehilangan data.
Apakah cache saya akan tersedia selama pengaturan skala?
- Cache Standar, Premium, Enterprise, dan Enterprise Flash tetap tersedia selama operasi penskalakan. Namun, blip koneksi dapat terjadi saat menskalakan cache ini, dan juga saat menskalakan dari cache Dasar ke Standar . Blip koneksi ini diharapkan menjadi klien kecil dan redis umumnya dapat membangun kembali koneksinya secara instan.
- Untuk cache Enterprise dan Enterprise Flash menggunakan replikasi geografis aktif, hanya menskalakan subset cache tertaut yang dapat memperkenalkan masalah dari waktu ke waktu dalam beberapa kasus. Sebaiknya skalakan semua cache dalam grup replikasi geografis bersama-sama jika memungkinkan.
- Cache Dasar offline selama operasi pengaturan skala ke ukuran yang berbeda. Cache dasar tetap tersedia saat melakukan penskalaan dari Dasar ke Standar tetapi mungkin akan mengalami blip koneksi kecil. Jika blip koneksi terjadi, klien Redis umumnya dapat seketika membangun kembali koneksinya.
Apakah ada batasan penskalaan dengan geo-replikasi?
Dengan replikasi geografis pasif yang dikonfigurasi, Anda mungkin melihat bahwa Anda tidak dapat menskalakan cache atau mengubah pecahan dalam kluster. Tautan geo-replikasi antara dua cache mencegah Anda melakukan operasi penskalaan atau mengubah jumlah shard dalam kluster. Anda harus membatalkan tautan cache untuk mengeluarkan perintah ini. Untuk informasi selengkapnya, lihat Mengonfigurasi replikasi Geografis.
Dengan replikasi geografis aktif yang dikonfigurasi, Anda tidak dapat menskalakan cache. Semua cache dalam grup replikasi geografis harus berukuran dan kapasitas yang sama.
Operasi yang tidak didukung
- Anda tidak dapat menurunkan skala dari tingkat harga yang lebih tinggi ke tingkat harga yang lebih rendah.
- Anda tidak dapat menurunkan skala dari cache Premium ke cache Standar atau Dasar.
- Anda tidak dapat menurunkan skala dari cache Standar ke cache Dasar.
- Anda dapat menskalakan dari cache Dasar ke cache Standar tetapi Anda tidak dapat mengubah ukurannya secara bersamaan. Jika Anda membutuhkan ukuran yang berbeda, Anda dapat melakukan operasi pengaturan skala dengan ukuran yang Anda inginkan di lain waktu.
- Anda tidak dapat menaikkan skala dari cache Dasar langsung ke cache Premium. Pertama, atur skala dari Dasar ke Standar dalam satu operasi penskalaan, lalu atur skala dari Standar ke Premium dalam operasi penskalaan berikutnya.
- Anda tidak dapat menskalakan dari cache Premium ke cache Enterprise atau Enterprise Flash .
- Anda tidak dapat menurunkan skala dari ukuran yang lebih besar ke ukuran C0 (250 MB).
Jika operasi penskalakan gagal, layanan mencoba mengembalikan operasi, dan cache kembali ke ukuran asli.
Berapa lama waktu yang dibutuhkan untuk pengaturan skala?
Waktu penskalaan bergantung pada beberapa faktor. Berikut adalah beberapa faktor yang dapat memengaruhi waktu yang diperlukan untuk penskalaan.
- Jumlah data: Jumlah data yang lebih besar membutuhkan waktu lebih lama untuk direplikasi
- Permintaan tulis yang tinggi: Jumlah operasi tulis yang lebih tinggi berarti lebih banyak data direplikasi di seluruh simpul atau shard
- Beban server tinggi: Beban server yang lebih tinggi berarti server Redis sibuk dan siklus CPU terbatas tersedia untuk menyelesaikan redistribusi data
Menskalakan cache adalah tindakan non-sepele dan dapat memakan waktu lama.
Berdasarkan contoh dunia nyata, waktu untuk menskalakan cache dengan satu hingga dua pecahan bisa 1 hingga 2 jam ketika cache tidak berada di bawah beban berat. Jika Anda memiliki lebih banyak pecahan, waktu untuk menskalakan tidak meningkat secara linier.
Bagaimana cara mengetahui kapan pengaturan skala selesai?
Di portal Microsoft Azure, Anda dapat melihat operasi pengaturan skala yang sedang berlangsung. Saat pengaturan skala selesai, status cache berubah menjadi Berjalan.
Apakah saya perlu membuat perubahan pada aplikasi klien saya untuk menggunakan pengklusteran?
Saat pengklusteran diaktifkan, hanya database 0 yang tersedia. Jika aplikasi klien Anda menggunakan beberapa database, dan mencoba membaca atau menulis ke database selain nol, pengecualian berikut akan dilemparkan:
Unhandled Exception: StackExchange.Redis.RedisConnectionException: ProtocolFailure on GET --->
StackExchange.Redis.RedisCommandException: Multiple databases are not supported on this server; cannot switch to database: 6
Untuk informasi selengkapnya, lihat Spesifikasi Kluster Redis - Subset yang diterapkan.
Jika Anda menggunakan StackExchange.Redis, Anda harus menggunakan 1.0.481 atau yang lebih baru. Anda tersambung ke cache menggunakan titik akhir, port, dan kunci yang sama dengan yang Anda gunakan saat menyambungkan ke cache yang menonaktifkan pengklusteran. Satu-satunya perbedaan adalah bahwa semua baca dan tulis harus dilakukan ke database 0.
Klien lain mungkin memiliki persyaratan yang berbeda. Lihat Apakah semua klien Redis mendukung pengklusteran?
Jika aplikasi Anda menggunakan beberapa operasi kunci yang dikumpulkan ke dalam satu perintah, semua kunci harus berada di shard yang sama. Untuk menemukan kunci dalam shard yang sama, lihat Bagaimana kunci didistribusikan dalam kluster?
Jika Anda menggunakan penyedia Redis ASP.NET Session State, Anda harus menggunakan 2.0.1 atau yang lebih tinggi. Lihat Bisakah saya menggunakan pengklusteran dengan penyedia Redis ASP.NET Session State dan Output Caching?
Penting
Saat menggunakan tingkat Enterprise atau Enterprise FLash, Anda diberi pilihan Mode Kluster OSS atau Mode Kluster Perusahaan. Mode Kluster OSS sama dengan pengklusteran pada tingkat Premium dan mengikuti spesifikasi pengklusteran sumber terbuka. Mode Kluster Perusahaan bisa kurang berkinerja, tetapi menggunakan pengklusteran Redis Enterprise yang tidak memerlukan perubahan klien untuk digunakan. Untuk informasi selengkapnya, lihat Pengklusteran di Enterprise.
Bagaimana kunci didistribusikan dalam kluster?
Sesuai dokumentasi Redis tentang model distribusi Kunci: Ruang kunci dibagi menjadi 16.384 slot. Setiap kunci di-hash dan ditetapkan ke salah satu slot ini, yang didistribusikan di seluruh simpul kluster. Anda dapat mengonfigurasi bagian kunci mana yang di-hash untuk memastikan bahwa beberapa kunci terletak di shard yang sama menggunakan tag hash.
- Kunci dengan tag hash - jika ada bagian kunci yang dimasukkan dalam
{
dan}
, hanya bagian kunci tersebut yang di-hash untuk tujuan menentukan slot hash kunci. Misalnya, tiga kunci berikut terletak di shard yang sama:{key}1
,{key}2
, dan{key}3
karena hanya bagiankey
dari nama yang di-hash. Untuk daftar lengkap spesifikasi tag hash kunci, lihat Tag hash kunci. - Kunci tanpa tag hash - seluruh nama kunci digunakan untuk hashing yang menghasilkan distribusi yang merata secara statistik di seluruh pecahan cache.
Untuk performa dan throughput terbaik, sebaiknya distribusikan kunci secara merata. Jika Anda menggunakan kunci dengan tag hash, aplikasi bertanggung jawab untuk memastikan kunci didistribusikan secara merata.
Untuk informasi selengkapnya, lihat Model distribusi kunci, Sharding data Redis Cluster, dan Tag hash kunci.
Untuk contoh kode tentang bekerja dengan pengklusteran dan mencari kunci dalam shard yang sama dengan klien StackExchange.Redis, lihat bagian clustering.cs dari sampel Halo Dunia.
Berapa ukuran cache terbesar yang bisa saya buat?
Ukuran cache terbesar yang dapat Anda miliki adalah 4,5 TB. Hasil ini adalah cache F1500 berkluster dengan kapasitas 9. Untuk informasi selengkapnya, lihat Harga Azure Cache for Redis.
Apakah semua klien Redis mendukung pengklusteran?
Banyak klien pustaka mendukung pengklusteran Redis, tetapi tidak semua. Periksa dokumentasi untuk pustaka yang Anda gunakan untuk memverifikasi bahwa Anda menggunakan pustaka dan versi yang mendukung pengklusteran. StackExchange.Redis adalah salah satu library yang mendukung pengklusteran, dalam versi yang lebih baru. Untuk informasi selengkapnya tentang klien lain, lihat bagian Bermain dengan kluster dari Tutorial kluster Redis.
Protokol pengklusteran Redis mengharuskan setiap klien untuk terhubung ke setiap shard langsung dalam mode pengklusteran, dan juga menentukan respons kesalahan baru seperti MOVED
na CROSSSLOTS
. Saat Anda mencoba menggunakan klien pustaka yang tidak mendukung pengklusteran dengan cache mode kluster, hasilnya bisa banyak pengecualian pengalihan MOVED, atau hanya merusak aplikasi Anda jika Anda melakukan permintaan multi-kunci lintas slot.
Catatan
Jika Anda menggunakan StackExchange.Redis sebagai klien Anda, verifikasi bahwa Anda menggunakan versi terbaru StackExchange.Redis 1.0.481 atau yang lebih baru agar pengklusteran berfungsi dengan benar. Untuk informasi selengkapnya mengenai masalah dengan pengecualian pemindahan, lihat pengecualian pemindahan.
Bagaimana cara menyambungkan ke cache saya saat pengklusteran diaktifkan?
Anda tersambung ke cache menggunakan titik akhir, port, dan kunci yang sama dengan yang Anda gunakan saat menyambungkan ke cache yang tidak mengaktifkan pengklusteran. Redis mengelola pengklusteran di backend sehingga Anda tidak perlu mengelolanya dari klien Anda.
Bisakah saya langsung tersambung ke shard individual cache saya?
Protokol pengelompokan mengharuskan klien untuk membuat koneksi pecahan yang benar sehingga klien harus membuat koneksi berbagi untuk Anda. Dengan demikian, setiap shard terdiri dari pasangan cache primer/replika, secara kolektif dikenal sebagai instance cache. Anda dapat terhubung ke instans cache ini menggunakan utilitas Redis-CLI di cabang repositori Redis yang tidak stabil di GitHub. Versi ini mengimplementasikan dukungan dasar saat dimulai dengan tombol -c
. Untuk informasi selengkapnya, lihat Bermain dengan kluster pada https://redis.io di Tutorial kluster Redis.
Anda perlu menggunakan sakelar -p
untuk menentukan port yang benar untuk disambungkan. Gunakan perintah NODES KLUSTER untuk menentukan port yang tepat yang digunakan untuk node primer dan replika. Rentang port berikut digunakan:
- Untuk cache tingkat Premium non-TLS, port tersedia dalam
130XX
rentang - Untuk cache tingkat Premium yang diaktifkan TLS, port tersedia dalam
150XX
rentang - Untuk cache Enterprise dan Enterprise Flash menggunakan pengklusteran OSS, koneksi awal melalui port 10000. Menyambungkan ke simpul individual dapat dilakukan menggunakan port dalam rentang 85XX. Port 85xx akan berubah dari waktu ke waktu dan tidak boleh dikodekan secara permanen ke dalam aplikasi Anda.
Bisakah saya mengonfigurasi pengklusteran untuk cache yang dibuat sebelumnya?
Ya. Pertama, pastikan cache Anda berada di tingkat Premium dengan meningkatkan skalanya. Selanjutnya, Anda dapat melihat opsi konfigurasi kluster, termasuk opsi untuk mengaktifkan kluster. Ubah ukuran kluster setelah cache dibuat, atau setelah Anda mengaktifkan pengklusteran untuk pertama kalinya.
Penting
Anda tidak dapat mengurungkan pengaktifan pengklusteran. Dan cache dengan pengklusteran diaktifkan dan hanya satu shard berperilaku berbeda dari cache dengan ukuran yang sama tanpa pengklusteran.
Semua cache tingkat Enterprise dan Enterprise Flash selalu diklusterkan.
Bisakah saya mengonfigurasi pengklusteran untuk cache dasar atau standar?
Pengklusteran hanya tersedia untuk cache Premium, Enterprise, dan Enterprise Flash.
Bisakah saya menggunakan pengklusteran dengan Penyedia Session State ASP.NET Redis dan "Penembolokan Output?
- Penyedia Redis Output Cache - tidak ada perubahan yang diperlukan.
- Penyedia Redis Session State - untuk menggunakan pengklusteran, Anda harus menggunakan RedisSessionStateProvider 2.0.1 atau lebih tinggi atau pengecualian dikirim yang merupakan perubahan yang melanggar. Untuk informasi selengkapnya, lihat Detail Perubahan yang Melanggar v2.0.0.
Saya mendapatkan pengecualian MOVE saat menggunakan StackExchange.Redis dan pengklusteran, apa yang harus saya lakukan?
Jika Anda menggunakan StackExchange.Redis dan menerima MOVE
pengecualian saat menggunakan pengklusteran, pastikan Anda menggunakan StackExchange.Redis 1.1.603 atau yang lebih baru. Untuk petunjuk tentang mengonfigurasi aplikasi .NET Anda untuk menggunakan StackExchange.Redis, lihat Mengonfigurasi klien cache.
Apa perbedaan antara Pengklusteran OSS dan Pengklusteran Perusahaan pada cache tingkat Perusahaan?
Mode Kluster OSS sama dengan pengklusteran pada tingkat Premium dan mengikuti spesifikasi pengklusteran sumber terbuka. Mode Kluster Perusahaan bisa kurang berkinerja, tetapi menggunakan pengklusteran Redis Enterprise, yang tidak memerlukan perubahan klien apa pun untuk digunakan. Untuk informasi selengkapnya, lihat Pengklusteran di Enterprise.
Berapa banyak shard yang digunakan cache tingkat Perusahaan?
Tidak seperti cache tingkat Dasar, Standar, dan Premium, cache Enterprise, dan Enterprise Flash dapat memanfaatkan beberapa pecahan pada satu simpul. Untuk informasi selengkapnya, lihat Pemanfaatan Sharding dan CPU.