Dengan pembangunan Internet dan pertumbuhan pesat volum dan lawatan data, caching yang berkesan telah menjadi cara penting untuk meningkatkan prestasi tapak web. Dalam aplikasi web, pangkalan data adalah komponen penting. Untuk mengurangkan beban pada pangkalan data dan meningkatkan prestasi laman web, kami perlu menyepadukan teknologi caching dengan pangkalan data untuk meningkatkan kelajuan akses data dan masa tindak balas.
Dalam dunia MySQL, terdapat komponen yang sangat berkuasa - Memcached, yang boleh mempercepatkan pertanyaan pangkalan data dan mengurangkan beban pada pelayan pangkalan data. Untuk menyambung PHP dan cache pangkalan data, kita boleh menggunakan sambungan memcached.
Mula-mula, kita perlu memasang sambungan Memcached. Anda boleh menggunakan arahan berikut:
sudo apt-get install php-memcached
Untuk mewujudkan sambungan dengan pelayan Memcached, kita perlu menggunakan kaedah memcached_connect
dalam PHP. Kaedah ini menerima dua parameter: alamat IP dan nombor port pelayan Memcached. Berikut ialah contoh kod untuk menyambung ke pelayan setempat:
$memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211);
Selepas sambungan diwujudkan, kami boleh menggunakan kaedah lain dalam contoh Memcached.
Dalam PHP, caching data menggunakan Memcached juga sangat mudah. Kami hanya perlu menggunakan kaedah set
dalam contoh Memcached dan nyatakan data untuk dicache dan parameter lain yang berkaitan.
Berikut ialah contoh caching data ke dalam pelayan Memcached:
$memcached->set('key', 'value', 3600);
Dalam contoh di atas, data akan dicache dalam pelayan Memcached dan tamat tempoh selepas 3600 saat, selepas itu diperlukan Pertanyaan sekali lagi.
Apabila kita perlu mendapatkan data cache daripada Memcached, kita boleh menggunakan kaedah get
.
Berikut ialah contoh mendapatkan data daripada Memcached:
$data = $memcached->get('key');
Dalam kod di atas, kami mendapat data dengan nilai kunci "kunci", dan hasilnya akan disimpan dalam $data
dalam pembolehubah.
Apabila data cache telah tamat tempoh atau tidak lagi sah, kami perlu memadamkannya daripada Memcached. Anda boleh menggunakan kaedah delete
.
Berikut ialah contoh pemadaman data cache:
$memcached->delete('key');
Dalam kod di atas, kami memadamkan data cache dengan nilai kunci "kunci".
Pertanyaan pangkalan data MySQL ialah proses yang agak memakan sumber Untuk mengurangkan beban pada pelayan MySQL, kami boleh menggunakan Memcached untuk membuat pertanyaan cache keputusan. Kami boleh menyemak sama ada keputusan dalam Memcached wujud sebelum membuat pertanyaan. Jika ya, dapatkan data terus daripada cache.
Berikut ialah contoh menyepadukan pertanyaan pangkalan data dan cache Memcached:
$key = 'query_' . md5($sql); $data = $memcached->get($key); if (!$data) { // 如果缓存数据不存在,则查询MySQL $result = $mysqli->query($sql); $data = $result->fetch_all(MYSQLI_ASSOC); // 将结果缓存到Memcached中 $memcached->set($key, $data, 3600); } // 处理结果 foreach ($data as $item) { // ... }
Dalam kod di atas, kami terlebih dahulu mencincang pernyataan pertanyaan SQL dan menggunakannya sebagai nilai utama. Kami menyemak sama ada $key
wujud dalam Memcached dan jika ya, dapatkan data terus daripada cache, jika tidak, tanya MySQL dan cache hasilnya ke dalam Memcached. Selepas itu, kami boleh terus menggunakan data cache untuk memproses keputusan.
Ringkasnya, menggunakan Memcached untuk cache hasil pertanyaan pangkalan data boleh meningkatkan prestasi aplikasi web dengan ketara. Dengan menyepadukan Memcached dalam PHP, kami boleh menggunakan teknologi caching dengan cepat dan mudah serta mendapatkan pengalaman pengguna yang lebih baik dalam aplikasi web.
Atas ialah kandungan terperinci Integrasi PHP dan cache pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!