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
extension=memcache.so
$memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Could not connect");
Menyimpan data:
$memcache->set($key, $value, $expire);
$key = 'user_1'; $result = $db->query("SELECT * FROM users WHERE id=1"); $row = $result->fetch_array(); $memcache->set($key, $row, 3600);
Dapatkan data:
$memcache->get($key);
$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); }
$memcache->delete($key);
$key = 'user_1'; $memcache->delete($key);
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'] . '
'; }
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!