MySQL yang dipcached dan berkinerja tinggi - 💡 Fix My Ideas

MySQL yang dipcached dan berkinerja tinggi

MySQL yang dipcached dan berkinerja tinggi


Penulis: Ethan Holmes, 2019

Memcached adalah sistem caching objek terdistribusi yang pada awalnya dikembangkan untuk meningkatkan kinerja LiveJournal dan selanjutnya telah digunakan sebagai strategi penskalaan untuk sejumlah situs bermuatan tinggi. Ini berfungsi sebagai tabel hash besar, sangat cepat yang dapat tersebar di banyak server dan diakses secara bersamaan dari berbagai proses. Ini dirancang untuk digunakan untuk hampir semua kebutuhan cache back-end, dan untuk aplikasi web berkinerja tinggi, ini merupakan pelengkap yang bagus untuk database seperti MySQL.

Dalam lingkungan tipikal, pengembang web mungkin menggunakan kombinasi caching level proses dan caching query MySQL bawaan untuk meningkatkan sedikit kinerja tambahan dari suatu aplikasi. Masalahnya adalah caching dalam-proses terbatas pada proses web yang berjalan pada satu server. Dalam konfigurasi beban-seimbang, setiap server mempertahankan cache sendiri, membatasi efisiensi dan ukuran cache yang tersedia. Demikian pula, cache kueri MySQL terbatas pada server tempat proses MySQL berjalan. Tembolok kueri juga terbatas karena hanya bisa meng-cache hasil baris. Dengan memcached Anda dapat mengatur server cache nomor yang dapat menyimpan semua jenis objek berseri dan data ini dapat dibagi oleh semua server web loadbalanced. Keren bukan?

Untuk mengatur server memcached, Anda cukup mengunduh daemon dan menjalankannya dengan beberapa parameter. Dari situs web memcached:

Pertama, Anda memulai daemon memcached pada sebanyak mungkin mesin cadangan. Daemon tidak memiliki file konfigurasi, hanya beberapa opsi baris perintah, hanya 3 atau 4 yang kemungkinan akan Anda gunakan:

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

Ini mulai memcached sebagai daemon, menggunakan 2GB memori, dan mendengarkan pada IP 10.0.0.40, port 11211. Karena proses 32-bit hanya dapat mengatasi 4GB memori virtual (biasanya jauh lebih sedikit, tergantung pada sistem operasi Anda), jika Anda memiliki server 32-bit dengan memori 4-64GB menggunakan PAE Anda bisa menjalankan beberapa proses pada mesin, masing-masing menggunakan 2 atau 3GB memori.

Ini sesederhana mungkin. Tidak ada konfigurasi nyata. Tidak ada otentikasi. Itu hanya meja hash gigantor. Jelas, Anda mengatur ini di jaringan pribadi yang tidak bisa dialamatkan. Dari sana, pekerjaan meminta dan memperbarui cache sepenuhnya tergantung pada perancang aplikasi. Anda diberi fungsi dasar mengatur, mendapatkan, dan menghapus. Berikut ini contoh sederhana dalam PHP:

$ memcache = Memcache baru; $ memcache-> addServer (‘10 .0.0.40 ’, 11211); $ memcache-> addServer (‘10 .0.0.41 ’, 11211);

$ value = “Data to cache”;

$ memcache-> set (‘theyey’, $ value, 60); echo “Caching selama 60 detik: $ value
“;

$ diambil = $ memcache-> get (‘thekey’); echo “Diperoleh: $ diambil
“;

Pustaka PHP menangani pekerjaan kotor dengan membuat serialisasi nilai apa pun yang Anda berikan ke cache, sehingga Anda dapat mengirim dan mengambil array atau bahkan melengkapi objek data.

Di lapisan data aplikasi Anda, alih-alih langsung memukul basis data, kini Anda dapat meminta memcached terlebih dahulu. Jika item ditemukan, tidak perlu menekan basis data dan mengumpulkan objek data. Jika kunci tidak ditemukan, Anda memilih data yang relevan dari database dan menyimpan objek yang diturunkan dalam cache. Demikian pula, Anda memperbarui cache setiap kali objek data Anda diubah dan diperbarui dalam database. Dengan asumsi API Anda terstruktur dengan baik, hanya beberapa suntingan yang perlu dilakukan untuk secara dramatis mengubah skalabilitas dan kinerja aplikasi Anda.

Saya telah ditautkan ke beberapa sumber daya di bawah ini di mana Anda dapat menemukan informasi lebih lanjut tentang penggunaan memcached dalam aplikasi Anda. Selain dokumentasi di situs web memcached, Todd Hoff telah menyusun daftar artikel tentang memcached dan merangkum beberapa teknik kinerja memcached. Ini alat yang sangat serbaguna. Bagi Anda yang telah menggunakan memcached, beri kami berteriak di komentar dan berbagi tips dan trik Anda.

Strategi Memcached untuk Menggunakan Memcached dan MySQL Better Together Memcached dan tutorial MySQL (PDF)



Anda Mungkin Tertarik

Cardboard Periscope - Pertunjukan Mini Pembuat Sylvia

Cardboard Periscope - Pertunjukan Mini Pembuat Sylvia


MEMBUAT Roundup Mingguan Flickr Pool

MEMBUAT Roundup Mingguan Flickr Pool


Penguin Sweater Sudah Siap - Buat Kerajinan Untuk Amal Lain!

Penguin Sweater Sudah Siap - Buat Kerajinan Untuk Amal Lain!


Bisakah DigiFab dan Pengerjaan Manual Hidup Berdampingan?

Bisakah DigiFab dan Pengerjaan Manual Hidup Berdampingan?






Recent Posts