ホームページ バックエンド開発 PHPチュートリアル php caching_PHPチュートリアルに基づいた詳細な説明

php caching_PHPチュートリアルに基づいた詳細な説明

Jul 21, 2016 pm 03:10 PM
cache fastcgi nginx php proxy そして に基づく 私たち 持っている 機構 キャッシュ 詳しい説明

nginx缓存
nginx有两种缓存机制:fastcgi_cache和proxy_cache
下面我们来说说这两种缓存机制的区别吧
proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的
fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽
fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力。

proxy_cache缓存设置
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path   /data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path  /data0/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=30g;

server
  {
    listen       80;
    server_name  www.yourdomain.com 192.168.8.42;
    index index.html index.htm;
    root  /data0/htdocs/www; 

    location /
    {
         #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
         proxy_next_upstream http_502 http_504 error timeout invalid_header;
         proxy_cache cache_one;
         #对不同的HTTP状态码设置不同的缓存时间
         proxy_cache_valid  200 304 12h;
         #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
         proxy_cache_key $host$uri$is_args$args;
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
         proxy_pass http://backend_server;
         expires      1d;
    }

    #用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/purge/test.txt就可以清除该URL的缓存。
    location ~ /purge(/.*)
    {
     #设置只允许指定的IP或IP段才可以清除URL缓存。
     allow            127.0.0.1;
     allow            192.168.0.0/16;
     deny            all;
     proxy_cache_purge    cache_one   $host$1$is_args$args;
    }   

    #扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
    location ~ .*\.(php|jsp|cgi)?$
    {
         proxy_set_header Host  $host;
         proxy_set_header X-Forwarded-For  $remote_addr;
         proxy_pass http://backend_server;
    }

access_log off;
}
}

fastcgi_cache キャッシュ設定
#キャッシュ保存フォルダーを定義します
fastcgi_cache_path /tt/cache tables=1:2keys_zone=NAME:2880m inactive=2d max_size=10G;
#キャッシュを定義します URLが異なりますリクエストfastcgi_cache_key "$ scheme $ request_method $ uri $ arg_x $ arg_y"; 48h;
fastcgi_cache_min_uses 1; _ FastCGI_CACHE_USE_STALE ERROR TIMEOUT Invalid_Header HTTP_500;
include Fastcgi.conf;
キャッシュの設定中に、-Cookie を取得できないことがわかりました。 $ http_user_agent" $http_x_forwarded_for';
access_log /httplogs/ access.log access;
}

一般に、nginx の proxy_cache と fastcgi_cache のキャッシュ構成は似ています。

------------------------------------------------ --------------------------------

memcache キャッシュ

memcache キャッシュについて説明する前に、まず mysql メモリ キャッシュについて理解しましょう
MySQL のメモリ キャッシュは my.cnf でサイズを指定できます。メモリ テーブルは一時テーブルとは異なり、一時テーブルの最大メモリも tmp_table_size=128M で設定する必要があります。データが一時テーブルの最大値設定をチェックすると、IO 操作が必要になるため、自動的にディスク テーブルに変換されますが、メモリ テーブルは影響を受けません。メモリがいっぱいになると、データフルエラーが表示されます。
例:
create table test
(
id int unsigned not null auto_increment Primary key
state char(10),
type char(20),
date char(30)
)engine=memory default charset=utf8


メモリテーブルの特徴:

1. メモリテーブルのテーブル定義は、拡張子.frm でディスクに保存されるため、再起動時に失われません
2. メモリテーブルのデータは、メモリが失われ、再起動するとデータが失われます
3. メモリ テーブルは固定長形式を使用します
4. メモリ テーブルは、varchar やテキスト フィールドなどの BLOB 列やテキスト列をサポートしません
5.メモリ テーブルは auto_increment 列と null 値を含むことができる列のインデックスをサポートします
7. メモリ テーブルはテーブル ロックであるため、頻繁に変更されるとパフォーマンスが低下する可能性があります
。 memcache を見てください。比較的に、mysql のメモリ テーブルにはより多くの制限があります。

memcache の目的
1. システムの同時実行能力を向上させる
2. データベースの負荷を軽減する

注: memcache Linux システム 32 ビットは 4G メモリのみをサポートし、memcache の最大保存時間は 30 日です。 。



www.bkjia.com本当http://www.bkjia.com/PHPjc/327137.html技術記事 nginx キャッシュ nginx には、fastcgi_cache と proxy_cache という 2 つのキャッシュ メカニズムがあります。これら 2 つのキャッシュ メカニズムの違いについて説明しましょう。proxy_cache の機能は、バックエンド サーバーのコンテンツをキャッシュすることです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

See all articles