Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Memcache untuk mencapai caching dan pembacaan data yang cekap dalam pembangunan PHP?

Bagaimana untuk menggunakan Memcache untuk mencapai caching dan pembacaan data yang cekap dalam pembangunan PHP?

王林
王林asal
2023-11-07 10:00:191196semak imbas

Bagaimana untuk menggunakan Memcache untuk mencapai caching dan pembacaan data yang cekap dalam pembangunan PHP?

Dalam pembangunan aplikasi web, persoalan biasa ialah bagaimana untuk meningkatkan kecekapan capaian data, dengan itu meningkatkan prestasi aplikasi dan pengalaman pengguna. Untuk menyelesaikan masalah ini, kita boleh menggunakan pelbagai teknik, salah satunya menggunakan Memcache untuk caching dan pembacaan data.

Memcache ialah sistem cache memori teragih berprestasi tinggi yang boleh menyimpan data biasa secara berkesan seperti keputusan pertanyaan pangkalan data, data sesi, hasil pengiraan, dll., sekali gus mengurangkan bilangan akses kepada sistem back-end seperti pangkalan data dan menambah baik prestasi dan kestabilan sistem.

Dalam pembangunan PHP, kami boleh menggunakan sambungan Memcache dan fungsi berkaitan untuk mencapai caching dan pembacaan data yang cekap. Di bawah ini kami akan memperkenalkan langkah khusus dan kod contoh tentang cara menggunakan Memcache untuk cache dan membaca data.

1 Pasang dan konfigurasi sambungan Memcache

Sebelum menggunakan Memcache, kita perlu memasang dan mengkonfigurasi sambungan Memcache. Sambungan Memcache ialah modul PHP Anda boleh memuat turun kod sumber yang sepadan dari tapak web rasmi (http://pecl.php.net/package/memcache) dan menggunakan arahan berikut untuk menyusun dan memasang:

tar zxvf memcache-x.x.x.tgz
cd memcache-x.x.x
phpize
./configure
make && make install
#🎜 🎜#pasang Setelah selesai, tambahkan kod berikut pada fail php.ini untuk mendayakan sambungan Memcache:

extension=memcache.so

2. Sambung dan gunakan Memcache

Langkah pertama untuk menggunakan Memcache adalah untuk mewujudkan sambungan. Anda boleh menggunakan kod berikut untuk mencipta contoh Memcache (sambungan lalai ke pelayan tempatan):

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

Selepas sambungan diwujudkan, anda boleh menggunakan kaedah berikut untuk menetapkan dan mendapatkan data daripada Memcache: # 🎜🎜##🎜🎜 #

Menyimpan data:

    $memcache->set($key, $value, $expire);
  1. Antaranya, $key ialah nama kunci bagi data, $value ialah nilai data, dan $expire ialah masa tamat tempoh data (dalam beberapa saat, Lalai ialah 0, yang bermaksud ia tidak akan tamat tempoh).
Sebagai contoh, anda boleh menggunakan kod berikut untuk menulis hasil pertanyaan pangkalan data ke dalam Memcache:

$key = 'user_1';
$result = $db->query("SELECT * FROM users WHERE id=1");
$row = $result->fetch_array();
$memcache->set($key, $row, 3600);

Dalam kod di atas, $db ialah objek sambungan pangkalan data MySQL, dan $row ialah hasil pertanyaan. Hasil pertanyaan dicache di sini selama 1 jam Data boleh dibaca terus dari Memcache semasa lawatan seterusnya, mengelakkan akses berulang kepada pangkalan data.

Dapatkan data:

    $memcache->get($key);
  1. Sebagai contoh, anda boleh menggunakan kod berikut untuk membaca data pengguna yang baru dicache daripada Memcache: #🎜🎜 #
    $key = 'user_1';
    $row = $memcache->get($key);
    if (!$row) {
        $result = $db->query("SELECT * FROM users WHERE id=1");
        $row = $result->fetch_array();
        $memcache->set($key, $row, 3600);
    }
  2. Dalam kod di atas, mula-mula cuba baca data dari Memcache Jika ia tidak wujud, tanyakannya dari pangkalan data Pada masa yang sama, tulis hasil pertanyaan ke Memcache daripada cache pada kali berikutnya anda mengaksesnya.

Padam data:

$memcache->delete($key);
    Sebagai contoh, anda boleh menggunakan kod berikut untuk memadam data pengguna yang baru anda cache:
  1. $key = 'user_1';
    $memcache->delete($key);
  2. 3. Contoh kod

Berikut ialah contoh kod khusus yang menyimpan cache hasil pertanyaan yang lebih kompleks ke dalam Memcache, dan membaca data terus daripada cache semasa lawatan seterusnya untuk meningkatkan kecekapan pertanyaan : # 🎜🎜#

$key = 'top_users';
$users = $memcache->get($key);

if (!$users) {
    // 查询活跃度前10名的用户
    $result = $db->query("SELECT u.id, u.name, COUNT(p.id) AS post_count FROM users u LEFT JOIN posts p ON u.id=p.user_id GROUP BY u.id ORDER BY post_count DESC LIMIT 10");
    $users = array();
    while ($row = $result->fetch_assoc()) {
        $users[] = $row;
    }

    // 将查询结果写入缓存
    $memcache->set($key, $users, 3600);
}

// 输出查询结果
foreach ($users as $user) {
    echo $user['name'] . ': ' . $user['post_count'] . '
'; }

Dalam kod di atas, mula-mula cuba baca data dari Memcache, jika ia tidak wujud, tanyakannya dari pangkalan data, dan tulis hasil pertanyaan ke Memcache Masa cache ialah 1 jam . Data boleh dibaca terus dari cache pada lawatan seterusnya.

4. Ringkasan

Menggunakan Memcache untuk caching dan pembacaan data ialah kaedah yang berkesan untuk meningkatkan prestasi aplikasi web. Dengan menggunakan sambungan Memcache dan fungsi yang berkaitan, kami boleh mencapai caching pantas dan membaca data dengan mudah, mengurangkan dengan ketara bilangan akses kepada sistem bahagian belakang, dan meningkatkan prestasi dan kestabilan sistem. Dalam proses pembangunan sebenar, Memcache boleh digunakan secara fleksibel mengikut keperluan aplikasi dan senario khusus untuk mengoptimumkan kecekapan capaian data.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Memcache untuk mencapai caching dan pembacaan data yang cekap dalam pembangunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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