真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

nginxphp存數據 nginx緩存接口數據

php如何更新nginx靜態(tài)緩存

這里說下Memcached的例子:

10年積累的成都做網站、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有南江免費網站建設讓你可以放心的選擇與我們合作。

復制代碼 代碼如下:

?php

$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);

讀庫的例子:

復制代碼 代碼如下:

?php

$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);

深入Nginx + PHP 緩存詳解

以下是對Nginx中的PHP緩存進行了詳細的分析介紹 需要的朋友可以參考下 ?

Nginx緩存 nginx有兩種緩存機制:fastcgi_cache和proxy_cache 下面我們來說說這兩種緩存機制的區(qū)別吧 proxy_cache 作用是緩存后端服務器的內容 可能是任何內容 包括靜態(tài)的和動態(tài)的 fastcgi_cache 作用是緩存fastcgi生成的內容 很多情況是php生成的動態(tài)內容 proxy_cache 緩存減少了nginx與后端通信的次數 節(jié)省了傳輸時間和后端帶寬 fastcgi_cache 緩存減少了nginx與php的通信次數 更減輕了php和數據庫的壓力 proxy_cache 緩存設置

復制代碼 代碼如下: #注 proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區(qū) proxy_temp_path /data /proxy_temp_dir; #設置Web緩存區(qū)名稱為cache_one 內存緩存空間大小為 MB 天沒有被訪問的內容自動清除 硬盤緩存空間大小為 GB proxy_cache_path /data /proxy_cache_dir levels= : keys_zone=cache_one: m inactive= d max_size= g; server { listen ; server_name yourdomain ; index index index ; root /data /htdocs/; location / { #如果后端的服務器返回 執(zhí)行超時等錯誤 自動將請求轉發(fā)到upstream負載均衡池中的另一臺服務器 實現故障轉移 proxy_next_upstream _ _ error timeout invalid_header; proxy_cache cache_one; #對不同的HTTP狀態(tài)碼設置不同的緩存時間 proxy_cache_valid h; #以域名 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 //backend_server; expires d; } #用于清除緩存 假設一個URL為 通過訪問就可以清除該URL的緩存 location ~ /purge(/ *) { #設置只允許指定的IP或IP段才可以清除URL緩存 allow ; allow / ; deny all; proxy_cache_purge cache_one $host$ $is_args$args; } #擴展名以 php jsp cgi結尾的動態(tài)應用程序不緩存 location ~ * (php|jsp|cgi)?$ { proxy_set_header Host $host; proxy_set_header X Forwarded For $remote_addr; proxy_pass //backend_server; } access_log off; } }

fastcgi_cache緩存設置

復制代碼 代碼如下: #定義緩存存放的文件夾 fastcgi_cache_path /tt/cache levels= : keys_zone=NAME: m inactive= d max_size= G; #定義緩存不同的url請求 fastcgi_cache_key "$scheme$request_method$host$uri$arg_filename$arg_x$arg_y"; server { listen ; server_name example ; location / { root /; index index index index php; } location ~ (| php)$ { root /; fastcgi_pass : ; fastcgi_cache NAME; fastcgi_cache_valid h; fastcgi_cache_min_uses ; fastcgi_cache_use_stale error timeout invalid_header _ ; fastcgi_index index php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi conf; #設置緩存的過程中發(fā)現無法獲取cookie 經查需要定義這句話 fastcgi_pass_header Set Cookie; } log_format access $remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$_referer" "$_user_agent" $_x_forwarded_for ; access_log / }

總的來說 nginx的proxy_cache和fastcgi_cache的緩存配置差不多 memcache緩存 在討論memcache緩存之前 我們先了解下mysql的內存緩存吧 mysql的內存緩存可以在my cnf中指定大小 內存表和臨時表不同 臨時表也是存放內存中 臨時表最大的內存需要通過tmp_table_size= M設定 當數據查過臨時表的最大值設定時 自動轉為磁盤表 此時因需要進行IO操作 性能會大大下降 而內存表不會 內存滿了后 會提示數據滿錯誤 例

復制代碼 代碼如下: create table test ( id int unsigned not null auto_increment primary key state char( ) type char( ) date char( ) )engine=memory default charset=utf lishixinzhi/Article/program/PHP/201311/21248

php怎么讀取設置nginx緩存

nginx緩存

nginx有兩種緩存機制:fastcgi_cache和proxy_cache

下面我們來說說這兩種緩存機制的區(qū)別吧

proxy_cache作用是緩存后端服務器的內容,可能是任何內容,包括靜態(tài)的和動態(tài)的

fastcgi_cache作用是緩存fastcgi生成的內容,很多情況是php生成的動態(tài)內容

proxy_cache緩存減少了nginx與后端通信的次數,節(jié)省了傳輸時間和后端帶寬

fastcgi_cache緩存減少了nginx與php的通信次數,更減輕了php和數據庫的壓力。

proxy_cache緩存設置

#注:proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區(qū)

proxy_temp_path???/data0/proxy_temp_dir;

#設置Web緩存區(qū)名稱為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???192.168.8.42;

index?index.html?index.htm;

root??/data0/htdocs/www;??

location?/

{

#如果后端的服務器返回502、504、執(zhí)行超時等錯誤,自動將請求轉發(fā)到upstream負載均衡池中的另一臺服務器,實現故障轉移。

proxy_next_upstream?http_502?http_504?error?timeout?invalid_header;

proxy_cache?cache_one;

#對不同的HTTP狀態(tài)碼設置不同的緩存時間

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?;

expires??????1d;

}

#用于清除緩存,假設一個URL為,通過訪問就可以清除該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結尾的動態(tài)應用程序不緩存。

location?~?.*\.(php|jsp|cgi)?$

{

proxy_set_header?Host??$host;

proxy_set_header?X-Forwarded-For??$remote_addr;

proxy_pass?;

}

access_log??off;

}

}

fastcgi_cache緩存設置

#定義緩存存放的文件夾

fastcgi_cache_path???/tt/cache??levels=1:2?keys_zone=NAME:2880m?inactive=2d?max_size=10G;

#定義緩存不同的url請求

fastcgi_cache_key?"$scheme$request_method$host$uri$arg_filename$arg_x$arg_y";

server?{

listen???????8080;

server_name???.com;

location?/?{

root???/www;

index??index.html?index.htm?index.php;

}

location?~?(|.php)$?{

root???????????/www;

fastcgi_pass???127.0.0.1:9000;

fastcgi_cache???NAME;

fastcgi_cache_valid?200?48h;

fastcgi_cache_min_uses??1;

fastcgi_cache_use_stale?error??timeout?invalid_header?http_500;

fastcgi_index??index.php;

fastcgi_param??SCRIPT_FILENAME??/scripts$fastcgi_script_name;

include????????fastcgi.conf;

#設置緩存的過程中發(fā)現無法獲取cookie,經查需要定義這句話

fastcgi_pass_header?Set-Cookie;

}

log_format??access??'$remote_addr?-?$remote_user?[$time_local]?"$request"?'

'$status?$body_bytes_sent?"$http_referer"?'

'"$http_user_agent"?$http_x_forwarded_for';

access_log??/httplogs/access.log??access;

}

總的來說??nginx的proxy_cache和fastcgi_cache的緩存配置差不多。

memcache緩存

在討論memcache緩存之前,我們先了解下mysql的內存緩存吧

mysql的內存緩存可以在my.cnf中指定大?。簝却姹砗团R時表不同,臨時表也是存放內存中,臨時表最大的內存需要通過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.內存表不支持blob或text列,比如varchar與text字段就不會被支持

5.內存表支持auto_increment列和對可包含null值的列的索引

6.內存表不支持事物

7.內存表是表鎖,當修改頻繁時,性能可能會下降

轉自:

下面我們來看看memcache,相對而言mysql的內存表限制較多。

memcache的用途

1.提高系統的并發(fā)能力

2.減輕數據庫的負擔

注:memcache?linux系統32位只支持4G內存,同時memcache最長保存時間為30天。


本文題目:nginxphp存數據 nginx緩存接口數據
網頁網址:http://weahome.cn/article/dosjsoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部