Jadual Kandungan
Penembusan cache
Pecahan cache
Cache avalanche
Ketekalan cache
Rumah Java javaTutorial Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?

Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?

Apr 22, 2023 pm 02:40 PM
java

Sistem cache yang diedarkan adalah bahagian yang sangat diperlukan dalam seni bina tiga tinggi, yang sangat meningkatkan keselarasan dan kelajuan tindak balas keseluruhan projek, tetapi ia juga membawa masalah baharu yang perlu diselesaikan, iaitu: Penembusan cache , pecahan cache , salji cache dan isu konsistensi cache.

Penembusan cache

Masalah besar pertama ialah penembusan cache. Konsep ini lebih mudah difahami dan berkaitan dengan kadar hit. Jika kadar pukulan rendah, maka tekanan akan tertumpu pada lapisan kegigihan pangkalan data.

Jika kami dapat mencari data yang berkaitan, kami boleh cachenya. Tetapi masalahnya ialah permintaan ini tidak mencecah cache atau lapisan kegigihan Keadaan ini dipanggil penembusan cache.

Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?

Sebagai contoh, seperti yang ditunjukkan dalam gambar di atas, dalam sistem log masuk, terdapat serangan luaran, dan ia terus mencuba untuk log masuk menggunakan pengguna yang tidak wujud pengguna adalah maya dan tidak boleh Ia dicache dengan berkesan dan akan ditanya dalam pangkalan data setiap kali, yang akhirnya akan menyebabkan kegagalan prestasi perkhidmatan.

Terdapat banyak penyelesaian untuk masalah ini, mari kita perkenalkan secara ringkas.

Yang pertama ialah cache objek kosong. Bukankah lapisan kegigihan tidak dapat mencari data? Kemudian kita boleh menetapkan hasil permintaan ini kepada null dan memasukkannya ke dalam cache. Dengan menetapkan masa tamat tempoh yang munasabah, keselamatan pangkalan data bahagian belakang boleh dipastikan.

Mencache objek kosong akan menduduki ruang cache tambahan, dan juga akan ada tetingkap masa untuk ketidakkonsistenan data, jadi kaedah kedua ialah menggunakan penapis Bloom untuk memproses sejumlah besar nilai kunci biasa.

Kewujudan atau ketiadaan rekod ialah nilai Bool yang boleh disimpan menggunakan 1 bit sahaja. Penapis Bloom boleh memampatkan operasi ya dan tidak ini ke dalam struktur data. Sebagai contoh, data seperti nombor telefon bimbit dan jantina pengguna sangat sesuai untuk menggunakan penapis Bloom.

Pecahan cache

Pecahan cache juga merujuk kepada situasi di mana permintaan pengguna jatuh pada pangkalan data Dalam kebanyakan kes, ia disebabkan oleh tamat tempoh masa cache.

Kami biasanya menetapkan masa tamat tempoh untuk data dalam cache. Jika sejumlah besar data diperoleh daripada pangkalan data pada masa tertentu dan masa tamat tempoh yang sama ditetapkan, ia akan tamat tempoh pada masa yang sama, menyebabkan kerosakan cache.

Untuk data panas, kami boleh menetapkannya untuk tidak tamat tempoh; atau mengemas kini masa tamatnya apabila diakses item cache yang diimport ke dalam pangkalan data dalam kelompok juga harus cuba memperuntukkan masa tamat tempoh yang agak purata untuk mengelakkan Tidak sah pada; masa yang sama.

Cache avalanche

Perkataan avalanche nampak menakutkan, tetapi keadaan sebenar memang lebih serius. Caching digunakan untuk mempercepatkan sistem, dan pangkalan data bahagian belakang hanyalah sandaran data, bukan alternatif ketersediaan tinggi.

Apabila sistem cache gagal, trafik akan dipindahkan serta-merta ke pangkalan data bahagian belakang. Tidak lama kemudian, pangkalan data akan ditenggelami oleh trafik yang padat dan menutup talian Kegagalan perkhidmatan yang melata ini boleh dipanggil dengan jelas.

Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?

Pembinaan cache dengan ketersediaan tinggi adalah sangat penting. Redis menyediakan mod induk-hamba dan kluster Mod kluster mudah digunakan, dan setiap serpihan juga boleh bertindak sebagai hamba induk secara bebas, memastikan ketersediaan yang sangat tinggi.

Selain itu, kami mempunyai penilaian umum tentang kesesakan prestasi pangkalan data. Jika sistem cache ranap, anda boleh menggunakan komponen pengehad semasa untuk memintas permintaan yang mengalir ke pangkalan data.

Ketekalan cache

Selepas komponen cache diperkenalkan, satu lagi masalah sukar ialah ketekalan cache.

Mari kita lihat dahulu bagaimana masalah itu berlaku. Untuk item cache, terdapat empat operasi yang biasa digunakan: tulis, kemas kini, baca dan padam.

  • Penulisan: Cache dan pangkalan data adalah dua komponen berbeza Selagi penulisan berganda terlibat, terdapat kemungkinan hanya satu daripada penulisan akan berjaya, menyebabkan data tidak konsisten.

  • Kemas kini: Situasi kemas kini adalah serupa, dua komponen berbeza perlu dikemas kini.

  • Baca: Baca untuk memastikan bahawa maklumat yang dibaca daripada cache adalah yang terkini dan konsisten dengan maklumat dalam pangkalan data.

  • Padam: Apabila memadam rekod pangkalan data, bagaimana untuk memadam data dalam cache?

Kerana logik perniagaan agak kompleks dalam kebanyakan kes. Operasi kemas kini sangat mahal Contohnya, baki pengguna ialah nombor yang dikira dengan mengira satu siri aset. Jika aset berkaitan ini perlu memuat semula cache setiap kali ia ditukar, struktur kod akan menjadi sangat mengelirukan dan mustahil untuk dikekalkan.

Saya mengesyorkan menggunakan kaedah ketekalan cache yang dicetuskan Menggunakan kaedah pemuatan malas boleh menjadikan penyegerakan cache sangat mudah:

  • Apabila membaca cache Pada masa itu, jika ada. tiada data yang berkaitan dalam cache, logik perniagaan yang berkaitan dilaksanakan, data cache dibina dan disimpan dalam sistem cache;

  • Apabila sumber yang berkaitan dengan item cache berubah, item cache yang sepadan terlebih dahulu dipadamkan, kemudian sumber tersebut dikemas kini dalam pangkalan data, dan akhirnya item cache yang sepadan dipadamkan.

Selain model pengaturcaraan mudah, operasi ini mempunyai manfaat yang jelas. Saya hanya memuatkan cache ini ke dalam sistem cache apabila saya menggunakannya. Jika sumber dicipta dan dikemas kini setiap kali pengubahsuaian dibuat, akan terdapat banyak data sejuk dalam sistem cache. Ini sebenarnya melaksanakan Corak Cache-Aside, yang memuatkan data daripada storan data ke dalam cache atas permintaan Kesan terbesar ialah meningkatkan prestasi dan mengurangkan pertanyaan yang tidak perlu.

Tetapi masih ada masalah dengan ini. Senario yang diperkenalkan seterusnya juga merupakan soalan yang sering ditanya dalam temu bual.

Tindakan kemas kini pangkalan data dan tindakan pemadaman cache yang kami nyatakan di atas jelas sekali bukan dalam transaksi yang sama. Ia boleh menyebabkan kandungan pangkalan data dan kandungan dalam cache menjadi tidak konsisten semasa proses kemas kini.

Dalam temu bual, selagi anda menunjukkan soalan ini, penemuduga akan memberikan ibu jari ke atas.

Anda boleh menggunakan kunci teragih untuk menyelesaikan masalah ini Anda boleh menggunakan kunci untuk mengasingkan operasi pangkalan data dan operasi cache daripada operasi baca cache yang lain. Secara umumnya, operasi baca tidak perlu dikunci Apabila ia menemui kunci, ia akan mencuba semula dan menunggu sehingga tamat.

Atas ialah kandungan terperinci Apakah empat masalah utama yang perlu diselesaikan oleh sistem cache yang diedarkan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

See all articles