麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

緩存詳解-核心技術與最佳實踐

2019-11-10 19:21:31
字體:
來源:轉載
供稿:網友
概念
緩存cache:高速數據交換存儲器。RAM。加大吞吐量:減少計算量,縮短請求流程(減少網絡I/O,硬盤I/O)php應用緩存: 1、底層CPU緩存、磁盤文件系統緩存。 2、應用層Zend虛擬機的變量緩存,有memcached key-value內存緩存, APC,eaccelerator這類基于opcode字節碼的緩存。 3、數據庫層有table cache,thread cache,query cache. 4、servlet容器層有apache的緩存。 5、servlet再上去,在web cache層(squid,varnish)memcache偏向于緩存,追求速度和性能。mongodb偏向于數據庫,數據類型豐富。
三要素
命中率:請求緩存次數和緩存返回正確結果次數的比例。MySQL:query cache. show global status查看global status.緩存更新策略: FIFO:先進先出; LFU:less frequently used最少使用元素會被清理掉。 LRU:least recently used最近最少使用的元素會被清理掉。緩存最大數據量: 緩存中處理元素最大個數或者能使用的最大存儲空間。mysql query_cache_szie

文件緩存

存儲磁盤、容量大,磁盤比內存更穩定。SSD固態硬盤讀寫速度提升。擴展容易:磁盤陣列、分布式處理等。web應用中的模板引擎和配置文件的處理中
應用
模板作用之一:把php代碼編譯成靜態HTML文件,下次讀取不用再編譯,直接讀取靜態文件。<?php/*返回編譯文件的文件名*/public function path() { return $this->cache_file = $this->arrayConfig['cachedir'].$this->file.$this->arrayConfig['suffix_cache'];}/** * 開始編譯 */public function compile() { $this->message = ob_get_contents(); @file_put_contents($this->path(), $this->message);}/** * 顯示模板 */public function show($file) { $this->file = $file; $PIG_TPL_FILE = $this->arrayConfig['templateDir'].$file.$this->arrayConfig['suffix']; //先判斷緩存文件是否存在 if(is_file($this->path())){ $old = $_SERVER['REQUEST_TIME'] - filemtime($this->path()) >= $this->arrayConfig['cache_time']? 1 : 0; }else{ $old = 0; } //如果需要靜態編譯 if(true == $this->arrayConfig['cache_htm']){ if(is_file($this->path()) && !$old){ readfile($this->path());//靜態編譯文件存在并且沒有過期 }else{ if(is_file($PIG_TPL_FILE)){ ob_start(); extract($this->value); include($PIG_TPL_FILE);//否則重新編譯 $this->compile(); }else{ die('找不到模板文件'); } } }else{//不需要編譯 if(is_file($PIG_TPL_FILE)) { extract($this->value); include($PIG_TPL_FILE);//加載原始文件并保存 }else{ die('找不到模板文件:'.$PIG_TPL_FILE); } }}
相關緩存產品
文件緩存開源產品secache:shopex團隊開發。純PHP實現,無須擴展;使用LRU算法自動清理;最大支持1G緩存;使用hash定位,讀取迅速;模仿的是memcached存儲機制,KEY-VALUE二進制數據庫,使用hash索引方式進行快速查找到相關的文件中的位置,并且采用拉鏈法解決沖突。使用slab數據塊來存儲數據。(文件存儲體積較大的數據。數據庫存儲數據同步和鎖問題)opcode緩存:虛擬機把PHP代碼編譯成一種中間碼的結果緩存起來(硬盤/內存),下次運行就不用再編譯直接解釋即可。eaccelerator:常駐內存。就是其中的一種opcode緩存,在服務器第一次請求PHP文件時候,會對PHP文件的opcode進行緩存;再次請求直接讀取opcode;由zend虛擬機直接執行,從而節省了語法解析的消耗。eaccelerator緩存opcode,同時提供一組API來操作緩存數據,java中的共享變量。能使得變量在不同的進程中得到共享。eaccelerator_put/eaccelerator_get

客戶端緩存

web緩存:由瀏覽器實現,同一個回話過程中,檢查一次病確定緩存的副本足夠新。
遵循規則
1、如果響應頭告訴瀏覽器不需要保留緩存,緩存器就不會緩存響應內容。2、如果請求信息需要認證或者安全加密,相關內容也不會進行緩存。3、如果在回應中不存在校驗器。4、含有完整的過期時間和壽命控制頭信息
頭部信息
expires:過期時間,告訴緩存器相關副本的過期時間。cache-control:緩存控制etag:服務器生成的唯一標識符etag,每次副本的標簽都會變化。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片视| 国产精品久久久久久久av | 国产一级淫片免费看 | 成人国产精品久久久 | 成人午夜视频网站 | 黄色av片三级三级三级免费看 | 欧美一级特黄特色大片免费 | 久久丝袜脚交足黄网站免费 | 黄色av片三级三级三级免费看 | 在线成人一区 | 国产精品一品二区三区四区18 | 国产成人高潮免费观看精品 | 视频www| 国产精品视频专区 | av成人免费在线观看 | 日本在线播放一区 | 欧美黑人伦理 | 免费a级作爱片免费观看欧洲 | 日韩毛片在线看 | 一级性生活免费视频 | 欧美视屏一区二区 | 色诱亚洲精品久久久久久 | 国产精品美女久久久久久不卡 | 激情网站在线观看 | 日本a大片 | 亚洲情av | 黄视频在线网站 | 久久99精品久久久久久国产越南 | 美女黄污视频 | 欧美黄色一级片视频 | 久久蜜桃香蕉精品一区二区三区 | 国产片91 | 欧美一级片在线 | av成人在线免费观看 | 欧美性a视频 | wwwxxx国产| 激情宗合| 特大黑人videos与另类娇小 | 色域tv | 日韩视频在线观看免费 | 素人视频在线观看免费 |