Rumah pangkalan data tutorial mysql Petua pembangunan PHP: Cara menggunakan Memcached untuk cache hasil pertanyaan MySQL

Petua pembangunan PHP: Cara menggunakan Memcached untuk cache hasil pertanyaan MySQL

Jul 02, 2023 am 08:48 AM
pertanyaan mysql Kemahiran pembangunan PHP: caching memcached

Petua pembangunan PHP: Cara menggunakan Memcached untuk cache hasil pertanyaan MySQL

Memcached ialah sistem caching objek memori teragih berprestasi tinggi, yang boleh digunakan untuk mengurangkan beban pada pangkalan data dan meningkatkan prestasi aplikasi. Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu menanyakan pangkalan data dengan kerap Pada masa ini, menggunakan Memcached untuk cache keputusan pertanyaan boleh meningkatkan kelajuan tindak balas sistem. Artikel ini akan berkongsi cara menggunakan Memcached untuk cache hasil pertanyaan MySQL dan memberikan contoh kod.

Langkah 1: Pasang dan Konfigurasikan Memcached

Mula-mula, kita perlu memasang perkhidmatan Memcached pada pelayan dan mendayakan sambungan Memcached dalam PHP. Untuk prosedur pemasangan dan konfigurasi khusus, sila rujuk dokumentasi rasmi Memcached.

Langkah 2: Sambung ke Memcached

Dalam kod, kita perlu menggunakan kelas Memcached untuk menyambung ke perkhidmatan Memcached. Berikut ialah contoh:

$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
Salin selepas log masuk

Di sini kami menyambung ke perkhidmatan Memcached tempatan, mendengar pada port lalai 11211. Jika perkhidmatan Memcached anda berjalan pada pelayan lain atau menggunakan port lain, anda perlu mengubah suai maklumat sambungan.

Langkah 3: Query Caching

Seterusnya, kami akan menanyakan pangkalan data MySQL dan cache hasil pertanyaan dalam Memcached. Berikut ialah contoh:

$key = 'my_query'; // 缓存键名,可以根据不同的查询语句设置不同的键名
$result = $memcached->get($key); // 查询缓存

if ($result === false) {
    // 如果缓存不存在,则执行数据库查询
    $pdo = new PDO('mysql:host=localhost;dbname=my_database', 'username', 'password');
    $stmt = $pdo->prepare('SELECT * FROM my_table');
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 将查询结果存入缓存
    $memcached->set($key, $result, 3600); // 有效期设置为1小时
}

// 使用查询结果
foreach ($result as $row) {
    // 处理每一行数据
}
Salin selepas log masuk

Dalam contoh ini, kami mula-mula bertanya sama ada terdapat hasil cache mengikut nama kunci cache. Jika cache wujud, hasil cache digunakan secara langsung jika cache tidak wujud, pertanyaan pangkalan data dilaksanakan dan hasil pertanyaan disimpan dalam cache. Apabila menyimpan dalam cache, kami menetapkan tempoh sah (di sini ditetapkan kepada 3600 saat atau 1 jam) untuk mengelakkan cache daripada digunakan selepas ia tamat tempoh. Akhir sekali, kita boleh menggunakan hasil pertanyaan untuk pemprosesan selanjutnya.

Langkah 4: Kemas kini cache

Apabila data dalam pangkalan data berubah, kita perlu mengemas kini cache untuk mengekalkan konsistensi antara cache dan data dalam pangkalan data. Berikut ialah contoh:

$key = 'my_query'; // 缓存键名,与查询时设置的键名一致
$result = $memcached->get($key); // 查询缓存

if ($result !== false) {
    // 如果缓存存在,则执行数据库更新操作

    // 更新数据库
    $pdo = new PDO('mysql:host=localhost;dbname=my_database', 'username', 'password');
    $stmt = $pdo->prepare('UPDATE my_table SET column = :value WHERE id = :id');
    $stmt->execute([
        ':value' => $new_value,
        ':id' => $row_id
    ]);

    // 删除缓存
    $memcached->delete($key);
}
Salin selepas log masuk

Dalam contoh ini, kami mula-mula menanyakan cache untuk melihat sama ada ia wujud. Jika cache wujud, lakukan operasi kemas kini pangkalan data dan padamkan cache. Dengan cara ini, apabila anda membuat pertanyaan seterusnya, keputusan terkini akan diambil daripada pangkalan data dan dicache.

Ringkasan:

Dengan menggunakan Memcached untuk cache hasil pertanyaan MySQL, kami boleh meningkatkan prestasi dan responsif aplikasi kami dengan sangat baik. Pertama, kita perlu memasang dan mengkonfigurasi perkhidmatan Memcached dan mendayakan sambungan Memcached dalam PHP. Kemudian, dalam kod, sambung ke Memcached dan lakukan caching pertanyaan. Akhir sekali, apabila data pangkalan data berubah, kita perlu mengemas kini cache untuk mengekalkan konsistensi.

Operasi pertanyaan dan kemas kini dalam contoh kod hanyalah tunjuk cara mudah, dan mungkin lebih kompleks dalam situasi sebenar. Walau bagaimanapun, melalui kaedah ini, kami boleh mengurangkan beban pangkalan data dengan berkesan dan meningkatkan prestasi dan kelajuan tindak balas aplikasi.

Bahan rujukan:

  • Dokumentasi rasmi Memcached: http://memcached.org/
  • Manual rasmi PHP: https://www.php.net/manual/en/book.memcached.php

Atas ialah kandungan terperinci Petua pembangunan PHP: Cara menggunakan Memcached untuk cache hasil pertanyaan MySQL. 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.

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)

Terangkan keupayaan carian teks penuh InnoDB. Terangkan keupayaan carian teks penuh InnoDB. Apr 02, 2025 pm 06:09 PM

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Bilakah imbasan jadual penuh lebih cepat daripada menggunakan indeks di MySQL? Bilakah imbasan jadual penuh lebih cepat daripada menggunakan indeks di MySQL? Apr 09, 2025 am 12:05 AM

Pengimbasan jadual penuh mungkin lebih cepat dalam MySQL daripada menggunakan indeks. Kes -kes tertentu termasuk: 1) jumlah data adalah kecil; 2) apabila pertanyaan mengembalikan sejumlah besar data; 3) Apabila lajur indeks tidak selektif; 4) Apabila pertanyaan kompleks. Dengan menganalisis rancangan pertanyaan, mengoptimumkan indeks, mengelakkan lebih banyak indeks dan tetap mengekalkan jadual, anda boleh membuat pilihan terbaik dalam aplikasi praktikal.

Bolehkah saya memasang mysql pada windows 7 Bolehkah saya memasang mysql pada windows 7 Apr 08, 2025 pm 03:21 PM

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

Perbezaan antara indeks kluster dan indeks bukan clustered (indeks sekunder) di InnoDB. Perbezaan antara indeks kluster dan indeks bukan clustered (indeks sekunder) di InnoDB. Apr 02, 2025 pm 06:25 PM

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Bagaimana anda mengendalikan dataset besar di MySQL? Bagaimana anda mengendalikan dataset besar di MySQL? Mar 21, 2025 pm 12:15 PM

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Mar 19, 2025 pm 03:52 PM

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

See all articles