Apabila aplikasi web menjadi semakin kompleks, prestasi telah menjadi isu kritikal. Dalam banyak aplikasi, pertanyaan pangkalan data adalah salah satu operasi yang paling memakan masa. Untuk mengelakkan kerap membaca data daripada pangkalan data, anda boleh menggunakan sistem caching untuk menyimpan data yang kerap dibaca dalam ingatan untuk akses pantas. Dalam pembangunan PHP, menggunakan Memcached untuk caching teragih adalah amalan yang sangat biasa Dalam artikel ini kami akan memperkenalkan cara menggunakan Memcached untuk caching teragih.
Memcached ialah sistem caching memori teragih berprestasi tinggi yang boleh berkongsi data cache antara berbilang pelayan. Lebih khusus lagi, Memcached ialah sistem cache nilai kunci yang menyimpan data dalam ingatan. Ia membolehkan pembangun mencache semua jenis data dalam aplikasi mereka, termasuk halaman HTML, hasil pertanyaan pangkalan data, dan juga aplikasi web yang lengkap.
Sebelum menggunakan Memcached, kita perlu memasangnya terlebih dahulu. Pada sistem Linux, anda boleh memasangnya dengan arahan berikut:
sudo apt-get install memcached sudo apt-get install php-memcached
Selepas pemasangan selesai, anda perlu memulakan perkhidmatan Memcached, yang boleh dimulakan dengan arahan berikut:
sudo service memcached start
Seterusnya, kita perlu mengkonfigurasi Memcached modul sambungan dalam PHP. Pada sistem Ubuntu, ia boleh dikonfigurasikan dengan mengedit fail berikut:
sudo vi /etc/php/7.0/mods-available/memcached.ini
Tambah kandungan berikut dalam fail:
extension=memcached.so
Simpan dan tutup fail dan mulakan semula pelayan Apache:
sudo service apache2 restart
Sekarang anda telah berjaya memasang dan mengkonfigurasi Memcached .
Seterusnya, kami akan menunjukkan cara menggunakan Memcached untuk caching teragih. Pertama, kita perlu mencipta contoh Memcached, anda boleh menggunakan kod berikut:
$mc = new Memcached(); $mc->addServer("127.0.0.1", 11211); // 添加一个Memcached服务器
Dalam kod di atas, kami mencipta contoh Memcached dan menambah pelayan Memcached. Parameter pertama fungsi addServer() ialah alamat IP pelayan Memcached, dan parameter kedua ialah nombor port (lalai ialah 11211).
Seterusnya, mari lihat contoh khusus caching hasil pertanyaan pangkalan data ke dalam Memcached. Kami menganggap bahawa kami telah menentukan fungsi fetchUserById() yang menerima ID pengguna sebagai parameter dan mengembalikan maklumat pengguna. Berikut ialah kod untuk mencapai ini:
function fetchUserById($uid) { // 检查缓存中是否存在该用户信息 $mc = new Memcached(); $mc->addServer("127.0.0.1", 11211); $key = "user_".$uid; $data = $mc->get($key); if (!$data) { // 如果缓存中不存在该用户信息,则从数据库中查询 $pdo = new PDO("mysql:host=127.0.0.1;dbname=mydb","root",""); $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id"); $stmt->bindParam(":id", $uid); $stmt->execute(); $data = $stmt->fetch(PDO::FETCH_ASSOC); // 将查询结果缓存到Memcached中 $mc->set($key, $data, 3600); } return $data; }
Dalam kod di atas, kami menggunakan ID pengguna sebagai nama kunci cache Memcached, dan jika nama kunci wujud dalam cache, data cache dikembalikan terus. Jika tidak, kami akan menanyakan data daripada pangkalan data dan menyimpan hasil pertanyaan dalam Memcached supaya pertanyaan seterusnya boleh dibaca daripada cache.
Dalam aplikasi sebenar, Memcached juga mempunyai banyak kegunaan lain, seperti caching halaman, caching data sesi, dll. Menggunakan Memcached boleh meningkatkan kelajuan dan prestasi aplikasi web, tetapi pada masa yang sama, lebih banyak isu perlu dipertimbangkan, seperti kemas kini cache, pembatalan cache, penembusan cache, dll. Oleh itu, apabila menggunakan Memcached untuk caching teragih, kita perlu mempertimbangkan proses pelaksanaan dan senario aplikasinya untuk meningkatkan kecekapannya.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Memcache untuk caching teragih dalam pembangunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!