亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php緩存的類型總結(jié)及用法

 更新時間:2021年12月31日 08:38:44   作者:青燈夜游  
在本篇文章里小編給大家整理了一篇關(guān)于php緩存的類型總結(jié)及用法,對此有需要的朋友們可以跟著學習下。

一個網(wǎng)站或者一個應(yīng)用的標準流程是瀏覽器向應(yīng)用服務(wù)器發(fā)出請求,應(yīng)用服務(wù)器做一些計算和邏輯判斷之后再請求數(shù)據(jù)庫,數(shù)據(jù)庫收到請求后在經(jīng)過計算將數(shù)據(jù)返回給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器再次計算后把數(shù)據(jù)返回給瀏覽器

那么,隨著web業(yè)務(wù)的復雜度和并發(fā)量的增加,應(yīng)用服務(wù)器所做的計算和邏輯處理越來越多,而應(yīng)用服務(wù)器的資源是有限的,且數(shù)據(jù)庫每秒接受并處理請求的次數(shù)也是有限的。為了在有限的資源提供盡可能多的吞吐量,就是減少計算量,縮短請求流程(減少網(wǎng)絡(luò)I/O或硬盤I/O)。這時,就用到了緩存(Cache)

php緩存類型

1、數(shù)據(jù)緩存:

數(shù)據(jù)緩存:這里所說的數(shù)據(jù)緩存是指數(shù)據(jù)庫查詢PHP緩存機制,每次訪問頁面的時候,都會先檢測相應(yīng)的緩存數(shù)據(jù)是否存在,如果不存在,就連接數(shù)據(jù)庫,得到數(shù)據(jù),并把查詢結(jié)果序列化后保存到文件中,以后同樣的查詢結(jié)果就直接從緩存表或文件中獲得。

用的最廣的例子看Discuz的搜索功能,把結(jié)果ID緩存到一個表中,下次搜索相同關(guān)鍵字時先搜索緩存表。

舉個常用的方法,多表關(guān)聯(lián)的時候,把附表中的內(nèi)容生成數(shù)組保存到主表的一個字段中,需要的時候數(shù)組分解一下,這樣的好處是只讀一個表,壞處就是兩個數(shù)據(jù)同步會多不少步驟,數(shù)據(jù)庫永遠是瓶頸,用硬盤換速度,是這個的關(guān)鍵點。

2、頁面緩存:

每次訪問頁面的時候,都會先檢測相應(yīng)的緩存頁面文件是否存在,如果不存在,就連接數(shù)據(jù)庫,得到數(shù)據(jù),顯示頁面并同時生成緩存頁面文件,這樣下次訪問的時候頁面文件就發(fā)揮作用了。(模板引擎和網(wǎng)上常見的一些PHP緩存機制類通常有此功能)

3、時間觸發(fā)緩存:

檢查文件是否存在并且時間戳小于設(shè)置的過期時間,如果文件修改的時間戳比當前時間戳減去過期時間戳大,那么就用緩存,否則更新緩存。

4、內(nèi)容觸發(fā)緩存:

當插入數(shù)據(jù)或更新數(shù)據(jù)時,強制更新PHP緩存機制。

5、靜態(tài)緩存:

這里所說的靜態(tài)緩存是指靜態(tài)化,直接生成HTML或XML等文本文件,有更新的時候重生成一次,適合于不太變化的頁面,這就不說了。

實例擴展:

Memcached;

是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。

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

Redis

是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。類似的安裝好php擴展// 初始化$cache = new Redis();

// 初始化$cache = new \Redis();
$cache->connect(CACHE_HOSTNAME, CACHE_PORT);
// 先檢查是否存在,然后寫入并設(shè)置有效時間
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);

到此這篇關(guān)于php緩存的類型總結(jié)及用法的文章就介紹到這了,更多相關(guān)php緩存有幾種類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP互換兩個變量值的方法(不用第三變量)

    PHP互換兩個變量值的方法(不用第三變量)

    相信每個剛接觸PHP語言的童鞋們應(yīng)該藕知道,PHP中兩個變量的值互換是個很常見的做法,那么下面這篇文章我們就來介紹幾個對于變量值互換的常見操作方法,文中介紹的很詳細,相信對于大家的理解和學習很有幫助,下面有需要的朋友們來一起看看吧。
    2016-11-11
  • PHP冒泡算法詳解(遞歸實現(xiàn))

    PHP冒泡算法詳解(遞歸實現(xiàn))

    本文是分享了一段使用遞歸實現(xiàn)php冒泡算法的代碼,并記錄了使用過程終于到的問題以及解決方法,有需要的小伙伴可以參考下哦
    2014-11-11
  • CI框架源碼閱讀,系統(tǒng)常量文件constants.php的配置

    CI框架源碼閱讀,系統(tǒng)常量文件constants.php的配置

    CI框架源碼閱讀,系統(tǒng)常量文件constants.php的配置,需要的朋友可以參考一下
    2013-02-02
  • php 應(yīng)用程序安全防范技術(shù)研究

    php 應(yīng)用程序安全防范技術(shù)研究

    比特網(wǎng)專家特稿:關(guān)于PHP應(yīng)用程序的安全,我們往往容易疏忽,或者采取的措施并不得當。這里給大家提供個通用防注射防跨站的小程序,僅供大家參考。
    2009-09-09
  • 攻克CakePHP(PHP中的Ruby On Rails框架)圖文介紹

    攻克CakePHP(PHP中的Ruby On Rails框架)圖文介紹

    CakePHP框架實例介紹分析。圖文并茂
    2008-10-10
  • PHP易混淆函數(shù)的區(qū)別及用法匯總

    PHP易混淆函數(shù)的區(qū)別及用法匯總

    這篇文章主要介紹了PHP易混淆函數(shù)的區(qū)別及用法,實例匯總了如echo和print、include與require、!isset和empty等函數(shù),是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • php簡單復制文件的方法

    php簡單復制文件的方法

    這篇文章主要介紹了php簡單復制文件的方法,涉及php針對文件的簡單判定與讀寫操作,需要的朋友可以參考下
    2016-05-05
  • PHP技術(shù)開發(fā)技巧分享

    PHP技術(shù)開發(fā)技巧分享

    本文檔的閱讀對象是有一定經(jīng)驗的PHP程序員,文檔中將介紹在PHP開發(fā)中的一些開發(fā)技巧,希望能對讀者有一定的啟發(fā)。
    2010-03-03
  • Laravel SQL語句記錄方式(推薦)

    Laravel SQL語句記錄方式(推薦)

    下面小編就為大家?guī)硪黄狶aravel SQL語句記錄方式(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • php中日期類型轉(zhuǎn)換實例講解

    php中日期類型轉(zhuǎn)換實例講解

    在本篇文章里小編給大家整理了一篇關(guān)于php中日期類型轉(zhuǎn)換實例講解內(nèi)容,有興趣的朋友們可以學習參考下。
    2021-09-09

最新評論