Teknologi caching Memcached menyokong ketersediaan aplikasi PHP yang tinggi
Dengan perkembangan pesat Internet, keperluan untuk aplikasi Web menjadi lebih tinggi dan lebih tinggi. Antaranya, ketersediaan tinggi adalah salah satu isu yang paling dibimbangkan oleh pengguna. Dalam senario aplikasi trafik tinggi, operasi baca dan tulis pangkalan data tradisional tidak lagi dapat memenuhi keperluan untuk konkurensi tinggi dan prestasi tinggi Aplikasi teknologi caching telah lama menjadi salah satu komponen yang diperlukan dalam aplikasi web. Memcached ialah perisian caching sumber terbuka yang digunakan secara meluas yang boleh meningkatkan prestasi aplikasi web dengan ketara. Artikel ini akan menumpukan pada aplikasi teknologi caching Memcached dalam ketersediaan tinggi aplikasi PHP.
1. Gambaran Keseluruhan Memcached
Memcached ialah sistem caching objek memori teragih berprestasi tinggi yang boleh digunakan untuk mengurangkan beban pada bahagian belakang storan data seperti pangkalan data. Takrif rasminya adalah seperti berikut:
"Memcached ialah sistem caching objek memori teragih berprestasi tinggi, selalunya digunakan untuk mempercepatkan aplikasi web dinamik, seperti PHP, dll. Ia menyimpan data dalam memori untuk Menyediakan storan pantas dan pengambilan semula, serta mengurangkan beban pada bahagian belakang storan data (seperti pangkalan data). Pada masa yang sama, disebabkan ciri-ciri teragihnya, berbilang nod Memcached boleh membentuk kelompok, dan boleh membentuk replikasi data, pengimbangan beban dan mekanisme lain antara satu sama lain, yang boleh memastikan ketersediaan dan prestasi sistem dengan lebih baik. Gambar rajah seni bina Memcached adalah seperti berikut:
2. Aplikasi Memcached dalam PHP
Menggunakan teknologi caching Memcached dalam PHP, anda boleh cache MySQL, Redis, MongoDB dan operasi pangkalan data lain, atau Terus cache kandungan keluaran halaman dan operasi lain. Dengan menggunakan Memcached, prestasi aplikasi anda boleh dipertingkatkan dengan ketara. Dua senario aplikasi khusus diperkenalkan di bawah.
Cache Pangkalan Data<?php $mem = new Memcache(); $mem->connect("localhost", 11211); $key = md5("SELECT * FROM user WHERE id=1"); $result = $mem->get($key); if (!$result) { $mysqli = new mysqli("localhost", "user", "password", "database"); $query = "SELECT * FROM user WHERE id=1"; $result = $mysqli->query($query)->fetch_assoc(); $mem->set($key, $result, 0, 3600); } print_r($result); ?>
Kod ini mula-mula menggunakan Memcached untuk mendapatkan data cache Jika cache tidak wujud, ia memperoleh data daripada pangkalan data dan menyimpan hasilnya dalam Memcached. Antaranya, parameter ketiga ialah masa luput Jika 0, bermakna data tidak akan luput Parameter keempat ialah masa penyimpanan, iaitu masa cache, dalam beberapa saat.
Cache output halaman<?php $mem = new Memcache(); $mem->connect("localhost", 11211); $key = md5("index"); $result = $mem->get($key); if (!$result) { ob_start(); // 生成首页内容 include("index.php"); $result = ob_get_contents(); ob_end_flush(); $mem->set($key, $result, 0, 3600); } echo $result; ?>
Sebelum menjana kandungan halaman utama, kod ini terlebih dahulu menggunakan fungsi ob_start() untuk mendayakan caching Selepas menjana kandungan halaman, ia menggunakan fungsi ob_get_contents() untuk mendapatkan cache keputusan, dan menggunakan fungsi ob_end_flush() untuk mengeluarkan kandungan HTML. Jika cache tidak wujud, kandungan halaman dijana dan hasilnya disimpan dalam Memcached.
3. Ringkasan
Memcached ialah sistem caching objek memori teragih berprestasi tinggi yang boleh meningkatkan prestasi aplikasi web dengan ketara dan juga sangat penting untuk sokongan ketersediaan tinggi untuk aplikasi PHP. . Apabila menggunakan Memcached, anda perlu memberi perhatian kepada perkara berikut:
Isu ketekalan data. Memandangkan Memcached diedarkan, penyegerakan data antara berbilang nod mengambil masa, jadi apabila menyimpan dan mendapatkan semula data, mekanisme tertentu perlu digunakan untuk memastikan ketekalan data.Atas ialah kandungan terperinci Teknologi caching memcached menyokong ketersediaan tinggi aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!