PHP常用的缓存技术汇总
这篇文章主要介绍了PHP常用的缓存技术汇总,下面所说的都是在项目中最常用的PHP缓存技术,新手同学收藏起来好好研究吧
一、数据缓存
这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。
用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。
举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。
二、页面缓存
每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)。
三、时间触发缓存
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。
四、内容触发缓存
当插入数据或更新数据时,强制更新缓存。
五、静态缓存
这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。
以上内容是代码级的解决方案,我直接CP别的框架,也懒得改,内容都差不多,很容易就做到,而且会几种方式一起用,但下面的内容是服务器端的缓存方案,非代码级的,要有多方的合作才能做到。
六、内存缓存
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
这里说下Memcached的例子:
复制代码 代码如下:
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)\n";
$get_result = $memcache->get('key');
echo "Data from the cache:\n";
var_dump($get_result);
读库的例子:
复制代码 代码如下:
$sql = 'SELECT * FROM users';
$key = md5($sql); //memcached 对象标识符
if ( !($datas = $mc->get($key)) ) {
// 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。
echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";
$conn = mysql_connect('localhost', 'test', 'test');
mysql_select_db('test');
$result = mysql_query($sql);
while ($row = mysql_fetch_object($result))
$datas[] = $row;
// 将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。
$mc->add($key, $datas);
} else {
echo "n".str_pad('Read datas from memcached.', 60, '_')."n";
}
var_dump($datas);
七、PHP的缓冲器、加速器
有eaccelerator, apc, phpa,xcache,这个这个就不说了吧,搜索一堆一堆的,自己看啦,知道有这玩意就OK。
八、MYSQL缓存
这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的
我贴段根据蓝色那家伙修改后部分my.ini吧,2G的MYISAM表可以在0.05S左右,据说他前后改了有快一年。
复制代码 代码如下:
[client]
……
default-character-set=gbk
default-storage-engine=MYISAM
max_connections=600
max_connect_errors=500
back_log=200
interactive_timeout=7200
query_cache_size=64M
……
table_cache=512
……
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=128M
key_buffer_size=1024M
read_buffer_size=512M
……
thread_concurrency=8
九、基于反向代理的Web缓存
如Nginx,,SQUID,mod_proxy(apache2以上又分为mod_proxy和mod_cache)
NGINX的例子:
复制代码 代码如下:
#user nobody;
worker_processes 4;
error_log logs/error.log crit;
pid logs/nginx.pid;
worker_rlimit_nofile 10240;
events {
use epoll;
worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
# server pool
upstream bspfrontsvr {
server 10.10.10.224:80 weight=1;
server 10.10.10.221:80 weight=1;
}
upstream bspimgsvr {
server 10.10.10.201:80 weight=1;
}
upstream bspstylesvr {
server 10.10.10.202:80 weight=1;
}
upstream bsphelpsvr {
server 10.10.10.204:80 weight=1;
}
upstream bspwsisvr {
server 10.10.10.203:80 weight=1;
}
upstream bspadminsvr {
server 10.10.10.222:80 weight=1;
}
upstream bspbuyersvr {
server 10.10.10.223:80 weight=1;
}
upstream bspsellersvr {
server 10.10.10.225:80 weight=1;
}
upstream bsploginsvr {
server 10.10.10.220:443 weight=1;
}
upstream bspregistersvr {
server 10.10.10.220:80 weight=1;
}
log_format test_com '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" ';
#--------------------------------------------------------------------
#img.test.com
server {
listen 10.10.10.230:80;
server_name img.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/img.log test_com;
}
#style.test.com
server {
listen 10.10.10.230:80;
server_name style.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/style.log test_com;
}
#help.test.com
server {
listen 10.10.10.230:80;
server_name help.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/help.log test_com;
}
#admin.test.com
server {
listen 10.10.10.230:80;
server_name admin.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/admin.log test_com;
}
#buyer.test.com
server {
listen 10.10.10.230:80;
server_name buyer.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/buyer.log test_com;
}
#seller.test.com
server {
listen 10.10.10.230:80;
server_name seller.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/seller.log test_com;
}
#wsi.test.com
server {
listen 10.10.10.230:80;
server_name wsi.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/wsi.log test_com;
}
#
server {
listen 10.10.10.230:80;
server_name *.test.com;
location ~ ^/NginxStatus/ {
stub_status on;
access_log off;
}
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/www.log test_com;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#login.test.com
server {
listen 10.10.10.230:443;
server_name login.test.com;
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://bsploginsvr;
include proxy_setting.conf;
}
access_log logs/login.log test_com;
}
#login.test.com for register
server {
listen 10.10.10.230:80;
server_name login.test.com;
location / {
proxy_pass ;
include proxy_setting.conf;
}
access_log logs/register.log test_com;
}
}
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
apache mod_proxy的例子:
复制代码 代码如下:

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan PHP untuk mengoptimumkan prestasi laman web dan kelajuan memuatkan Dengan perkembangan pesat Internet, prestasi laman web dan kelajuan memuatkan telah menarik lebih banyak perhatian. Sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas, PHP memainkan peranan penting dalam mengoptimumkan prestasi tapak web dan kelajuan pemuatan. Artikel ini akan memperkenalkan beberapa petua dan kaedah untuk menggunakan PHP untuk meningkatkan prestasi dan kelajuan memuatkan tapak web anda. Menggunakan mekanisme caching Caching ialah cara yang berkesan untuk meningkatkan prestasi tapak web. PHP menyediakan pelbagai mekanisme caching, seperti caching fail, caching memori dan caching data.

Dengan pembangunan aplikasi Internet yang berterusan, mengoptimumkan prestasi laman web telah menjadi salah satu tugas yang diperlukan untuk pembangunan laman web. Antaranya, penggunaan teknologi caching merupakan kaedah pengoptimuman yang penting. Dalam pembangunan PHP, teknologi caching boleh meningkatkan prestasi dan kelajuan tindak balas laman web, dengan berkesan mengelakkan operasi seperti pengiraan berulang dan pertanyaan pangkalan data, dan dengan itu mencapai caching data dinamik. Artikel ini akan memperkenalkan cara menggunakan teknologi caching untuk melaksanakan caching data dinamik dalam PHP. Konsep caching Caching ialah teknologi yang digunakan untuk meningkatkan prestasi aplikasi. Dalam pembangunan laman web, caching adalah perkhidmatan caching

PHP ialah bahasa pengaturcaraan sebelah pelayan yang digunakan secara meluas dalam pembangunan web. Dalam proses membangunkan tapak web, kelajuan memuatkan fail sumber statik (termasuk css, js, gambar, dll.) secara langsung mempengaruhi pengalaman pengguna tapak web tersebut. Oleh itu, bagaimana untuk meningkatkan kelajuan memuatkan fail sumber statik telah menjadi salah satu isu yang perlu difikirkan oleh pembangun. Satu penyelesaian ialah menggunakan teknologi caching dalam PHP. Dalam PHP, caching fail sumber statik terutamanya dibahagikan kepada dua jenis: cache penyemak imbas dan cache pelayan. Caching penyemak imbas bergantung pada mekanisme caching tempatan penyemak imbas untuk mengurangkan

Memandangkan kerumitan aplikasi web moden terus meningkat, isu prestasi telah menjadi cabaran utama bagi pembangun. Salah satu kesesakan prestasi biasa ialah akses kerap kepada pangkalan data atau sistem fail, yang boleh menyebabkan masalah prestasi yang serius. Teknologi caching adalah salah satu cara untuk menyelesaikan masalah ini. Artikel ini akan memperkenalkan pengetahuan asas dan kaedah pelaksanaan menggunakan cache dalam PHP. Kami akan membincangkan beberapa teknik caching PHP yang popular dan cara mengintegrasikannya ke dalam aplikasi kami. Apakah cache? Caching ialah cara untuk aplikasi

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web, dan banyak laman web dibangunkan menggunakan PHP. Walau bagaimanapun, apabila bilangan lawatan terus meningkat, masalah prestasi tapak web telah menjadi semakin ketara. Untuk meningkatkan prestasi tapak web, teknologi caching adalah penyelesaian yang sangat berkesan. Artikel ini akan memperkenalkan teknologi caching dalam PHP, bertujuan untuk membantu pembaca lebih memahami dan menggunakan teknologi caching untuk meningkatkan prestasi tapak web. Apakah teknologi caching? Teknologi caching ialah teknologi yang digunakan dalam aplikasi untuk meningkatkan kelajuan capaian data. Ia dicache dalam memori atau cakera

Bagaimana untuk menggunakan teknologi caching PHP untuk meningkatkan prestasi? Dengan perkembangan pesat Internet, prestasi laman web telah menjadi lebih penting untuk pengalaman pengguna dan kedudukan SEO. Sebagai bahasa skrip sebelah pelayan yang biasa digunakan, prestasi PHP memainkan peranan penting dalam kelajuan tindak balas tapak web. Teknologi caching PHP adalah cara penting untuk meningkatkan prestasi. 1. Mengapa menggunakan teknologi caching? Sebelum memahami cara menggunakan teknologi caching PHP, mari kita fahami dahulu mengapa kita perlu menggunakan teknologi caching. Dalam pembangunan web, penjanaan halaman biasanya

PHP ialah bahasa skrip sebelah pelayan yang biasa, dan teknologi caching ialah cara yang berkesan untuk mengoptimumkan prestasi. Artikel ini akan meneroka faedah dan kaedah aplikasi menggunakan teknologi caching PHP dalam senario aplikasi yang berbeza. Aplikasi Web Aplikasi web perlu melakukan sejumlah besar operasi pemulaan apabila bermula, seperti memuatkan fail konfigurasi, sambungan pangkalan data, dsb. Operasi ini memakan banyak masa dan sumber pengkomputeran serta menjejaskan prestasi aplikasi web. Menggunakan teknologi caching boleh mengurangkan bilangan pelaksanaan operasi permulaan ini dan mempercepatkan kelajuan tindak balas aplikasi web. Dalam aplikasi web,

Dengan perkembangan pesat Internet, cara membuat aplikasi bertindak balas kepada permintaan pengguna dalam masa yang lebih singkat adalah masalah yang sentiasa dioptimumkan. Teknologi caching adalah salah satu kaedah pengoptimuman yang biasa. Artikel ini akan menumpukan pada kesan pengoptimuman teknologi caching dalam PHP pada kelajuan tindak balas aplikasi. Konsep asas caching merujuk kepada menyimpan sementara hasil pelaksanaan dalam memori atau cakera semasa pelaksanaan aplikasi. Apabila permintaan yang sama datang pada masa akan datang, hasil yang dikira boleh dibaca terus dari memori atau cakera tanpa melaksanakan permintaan yang sama sekali lagi.
