PHP的幾種緩存方式


緩存技術可減輕服務器負載、降低網絡擁塞、增強WWW可擴展性,其基本思想是利用客戶訪問的時間局部性,將客戶訪問過的內容在Cache中存放一個副本,當該內容下次被訪問時,不必連接到駐留網站,而是由Cache中保留的副本提供。緩存是一個很重要的技術,下面是自己使用的幾個緩存技術,記錄一下。

1.文件緩存(不多說了,這個)。

2.Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信,php有memcached擴展,安裝好了即可使用。

// 初始化
$cache = new Memcache();
$cache->pconnect(CACHE_HOSTNAME, CACHE_PORT);
// 寫入
$cache->set(CACHE_PREFIX . $key, $value, MEMCACHE_COMPRESSED, $expire);(CACHE_PREFIX 為了避免命名沖突,最好加一個前綴,MEMCACHE_COMPRESSED一個標記,設置為0表示不壓縮)
// 讀取
$cache->get(CACHE_PREFIX . $key);
// 刪除
$cache->delete(CACHE_PREFIX . $key);

  

3.Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日志型、Key-Value數據庫,並提供多種語言的API。類似的安裝好php擴展// 初始化\$cache = new Redis();

// 初始化$cache = new \Redis();
$cache->connect(CACHE_HOSTNAME, CACHE_PORT);
// 先檢查是否存在,然后寫入並設置有效時間
if($cache->exists($key)){  
    $cache->delete(CACHE_PREFIX . $key);
}
$cache->set(CACHE_PREFIX . $key, serialize($value));
$cache->expire(CACHE_PREFIX . $key, $expire);
// 讀取
$cache->get(CACHE_PREFIX . $key);

4.APC 

Alternative PHP Cache (APC) 是一個開放自由的PHP opcode 緩存。它的目標是提供一個自由、 開放,和健全的框架用於緩存和優化PHP的中間代碼。

這個試了半天沒成功,windows一開啟就報錯,記下以后再試。

php內置的,無需類似上面兩種去連接初始化什么的。

// 寫入
apc_store(CACHE_PREFIX . $key, $value, $expire);
// 讀取
apc_fetch(CACHE_PREFIX . $key);
// 刪除
apc_delete(CACHE_PREFIX . $key);

 相對第四個貌似是最簡單的,但是好像配置不好配,網上找了半天沒找到解決方案。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM