Dalam pembangunan web, menanyakan data pangkalan data adalah operasi biasa. Untuk operasi pertanyaan yang kerap, jika permintaan dibuat kepada pangkalan data setiap kali, tekanan pada pangkalan data akan meningkat, kelajuan tindak balas halaman akan menjadi perlahan, dan pengalaman pengguna akan terjejas. Untuk menyelesaikan masalah ini, teknologi caching boleh digunakan untuk cache data yang sering ditanya dalam pelayan cache, mengurangkan beban pada pangkalan data dan meningkatkan kelajuan tindak balas halaman.
Sebagai bahasa pembangunan web yang popular, PHP menyediakan pelbagai teknologi caching. Artikel ini akan memperkenalkan kaedah pelaksanaan caching data pangkalan data pertanyaan PHP.
1. Konsep teknologi caching
Teknologi cache ialah teknologi yang menyimpan hasil pengiraan dalam memori berkelajuan tinggi supaya ia boleh diambil semula dengan cepat untuk kegunaan masa hadapan. Dalam aplikasi web, cache boleh merujuk kepada komponen, blok fail atau keseluruhan halaman. Teknologi cache yang biasa digunakan ialah:
2. Kaedah pelaksanaan cache data pangkalan data pertanyaan PHP
Berikut akan memperkenalkan dua kaedah pelaksanaan biasa cache data pangkalan data pertanyaan PHP.
Kaedah pelaksanaan ini sesuai untuk menyimpan data yang lebih kecil dan sesuai untuk persekitaran bersendirian Anda boleh memilih untuk menggunakan fungsi caching fail PHP sendiri file_get_contents () dan file_put_contents() melaksanakan caching.
Pertama, anda perlu menentukan nama dan masa cache fail cache. Sebagai contoh, kita boleh menetapkan nama fail kepada cache.txt dan masa cache kepada 10 minit.
// 定义缓存文件名和缓存时间 $cache_file = 'cache.txt'; $cache_time = 600; // 10分钟
Kemudian, sebelum menanyakan data, semak sama ada fail cache wujud Jika ia wujud dan belum tamat tempoh, baca data terus daripada fail cache jika ia tidak wujud atau telah tamat tempoh, baca ia daripada pangkalan data dan mengemas kini fail cache.
// 检查缓存文件是否存在 if (file_exists($cache_file) && time() - filemtime($cache_file) < $cache_time) { // 缓存文件未过期,直接读取缓存文件中的数据 $data = file_get_contents($cache_file); } else { // 缓存文件不存在或已过期,从数据库中读取数据 $data = query_data_from_database(); // 将数据写入缓存文件中 file_put_contents($cache_file, $data); }
Kaedah pelaksanaan ini sesuai untuk menyimpan data yang lebih besar dan sesuai untuk persekitaran kluster. Apabila melaksanakan cache memori, anda boleh menggunakan tatasusunan terbina dalam PHP atau menggunakan sambungan seperti Memcached, Redis, dsb.
Pertama, buat tatasusunan PHP sebagai cache dan simpan data yang ditanya dalam tatasusunan.
// 创建一个PHP数组作为缓存 $cache_data = array(); // 查询数据并存储在缓存数组中 $query_result = query_data_from_database(); if (!empty($query_result)) { $cache_data['data'] = $query_result; }
Kemudian, semak sama ada data yang diperlukan wujud dalam tatasusunan cache. Jika ia wujud, kembalikan data yang dicache secara langsung jika ia tidak wujud, dapatkan data daripada pangkalan data, simpannya dalam cache tatasusunan, dan kembalikan data .
// 检查缓存数组是否存在所需的数据 if (isset($cache_data['data'])) { // 直接返回缓存数据 $data = $cache_data['data']; } else { // 从数据库中查询数据 $query_result = query_data_from_database(); // 将数据存储在缓存数组中 if (!empty($query_result)) { $cache_data['data'] = $query_result; } // 返回数据 $data = $query_result; }
3. Ringkasan
Untuk operasi pertanyaan yang kerap berlaku, menggunakan teknologi caching boleh mengurangkan beban pada pangkalan data dan meningkatkan kelajuan tindak balas halaman. Artikel ini memperkenalkan dua kaedah pelaksanaan biasa caching data pangkalan data pertanyaan PHP: caching fail dan caching memori. Caching fail sesuai untuk caching data yang lebih kecil dan boleh dilaksanakan menggunakan fungsi caching fail PHP sendiri caching memori sesuai untuk caching data yang lebih besar dan boleh dilaksanakan menggunakan tatasusunan atau sambungan terbina dalam PHP seperti Memcached dan Redis. Dalam pembangunan sebenar, teknologi caching yang sesuai harus dipilih berdasarkan keadaan sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menanyakan cache data pangkalan data dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!