国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 網站 > 建站經驗 > 正文

Drupal模塊講解-Authcache緩存原理詳解教程

2024-08-30 19:06:43
字體:
來源:轉載
供稿:網友

Authcache模塊和Boost模塊的原理不一樣,Boost模塊是生成靜態頁面,所以緩存的效果最好,速度最快,Authcache模塊是利用Drupal自身的緩存機制,生成頁面緩存,由于進入到了Drupal環節,因此速度沒有Boost緩存快,但是優點就是可以靈活的使用PHP/Drupal相關方法,動態處理數據.

Drupal模塊講解-Authcache緩存原理詳解教程

首先,我們從Drupal的bootstrap講起.

  1. function drupal_bootstrap($phase = NULL, $new_phase = TRUE) { 
  2.   // Not drupal_static(), because does not depend on any run-time information. 
  3.   static $phases = array
  4.     DRUPAL_BOOTSTRAP_CONFIGURATION, 
  5.     DRUPAL_BOOTSTRAP_PAGE_CACHE, 
  6.     DRUPAL_BOOTSTRAP_DATABASE, 
  7.     DRUPAL_BOOTSTRAP_VARIABLES, 
  8.     DRUPAL_BOOTSTRAP_SESSION, 
  9.     DRUPAL_BOOTSTRAP_PAGE_HEADER, 
  10.     DRUPAL_BOOTSTRAP_LANGUAGE, 
  11.     DRUPAL_BOOTSTRAP_FULL, 
  12.   ); 
  13. …. 

這是Drupal自帶的bootstrap的幾個環節(Drupal7),從CONFIGURATION、一直到 FULL,這樣整個Drupal就啟動了,所有的模塊也加載了.

其中我們發現,有一個環節叫 PAGE_CACHE,我們來把這個階段的處理函數完整的貼出來,以便大家能更好的理解這段代碼.

  1. function _drupal_bootstrap_page_cache() { 
  2.   global $user
  3.  
  4.   // Allow specifying special cache handlers in settings.php, like 
  5.   // using memcached or files for storing cache information. 
  6.   require_once DRUPAL_ROOT . '/includes/cache.inc'
  7.   foreach (variable_get('cache_backends'array()) as $include) { 
  8.     require_once DRUPAL_ROOT . '/' . $include
  9.   }  //開源軟件:Vevb.com 
  10.   // Check for a cache mode force from settings.php. 
  11.   if (variable_get('page_cache_without_database')) { 
  12.     $cache_enabled = TRUE; 
  13.   } 
  14.   else { 
  15.     drupal_bootstrap(DRUPAL_BOOTSTRAP_VARIABLES, FALSE); 
  16.     $cache_enabled = variable_get('cache'); 
  17.   } 
  18.   drupal_block_denied(ip_address()); 
  19.   // If there is no session cookie and cache is enabled (or forced), try 
  20.   // to serve a cached page. 
  21.   if (!isset($_COOKIE[session_name()]) && $cache_enabled) { 
  22.     // Make sure there is a user object because its timestamp will be 
  23.     // checked, hook_boot might check for anonymous user etc. 
  24.     $user = drupal_anonymous_user(); 
  25.     // Get the page from the cache. 
  26.     $cache = drupal_page_get_cache(); 
  27.     // If there is a cached page, display it. 
  28.     if (is_object($cache)) { 
  29.       header('X-Drupal-Cache: HIT'); 
  30.       // Restore the metadata cached with the page. 
  31.       $_GET['q'] = $cache->data['path']; 
  32.       drupal_set_title($cache->data['title'], PASS_THROUGH); 
  33.       date_default_timezone_set(drupal_get_user_timezone()); 
  34.       // If the skipping of the bootstrap hooks is not enforced, call 
  35.       // hook_boot. 
  36.       if (variable_get('page_cache_invoke_hooks', TRUE)) { 
  37.         bootstrap_invoke_all('boot'); 
  38.       } 
  39.       drupal_serve_page_from_cache($cache); 
  40.       // If the skipping of the bootstrap hooks is not enforced, call 
  41.       // hook_exit. 
  42.       if (variable_get('page_cache_invoke_hooks', TRUE)) { 
  43.         bootstrap_invoke_all('exit'); 
  44.       } 
  45.       // We are done. 
  46.       exit
  47.     } 
  48.     else { 
  49.       header('X-Drupal-Cache: MISS'); 
  50.     } 
  51.   } 

當我們看到最下面,exit ;(We are done)之處,我們就知道,Drupal已經處理完了請求,后面的環境(Session、數據庫、模塊、FULL)等環節就不用啟動了,因此大大節省了服務器的處理時間和提高了響應時間.

這就是Drupal自帶的緩存處理機制,Drupal自帶的緩存機制缺點也很明顯,就是只對匿名用戶有效.

因此,Authcache模塊就出現了,Authcache就是利用Drupal自帶的緩存機制,實現對登錄用戶的緩存.

繼續看上面的代碼,其中有3行,如下:

  1. foreach (variable_get('cache_backends'array()) as $include) { 
  2.   require_once DRUPAL_ROOT . '/' . $include

其中,獲取’cache_backends’的時候,加載了一個數組變量,所以在Drupal自身的緩存階段要使用到authcache,那就必須修改這個 cache_backends.

果如其然,如下所示,我們在安裝authcache的時候,就必須設置如下變量.

  1. $conf['cache_backends'][] = 'sites/all/modules/authcache/authcache.cache.inc'
  2. $conf['cache_backends'][] = 'sites/all/modules/authcache/modules/authcache_builtin/authcache_builtin.cache.inc'

這個時候,我們就加載進了authcache.cache.inc和文件了.

繼續…我們打開authcache.cache.inc 其中,就是定義一些函數,繼續查看authcache_builtin.cache.inc文件,看到如下代碼:

  1. $delivered = authcache_builtin_cacheinc_retrieve_cache_page(); 
  2. if ($delivered) { 
  3.   exit

也就是說在這個時候,如果命中了緩存就直接輸入頁面內容,不再繼續boot!這個地方也就代替了原本Drupal自己查找緩存和計算命中緩存的邏輯,使用authcache自己的算法,根據用戶的角色不同,使用的緩存不同.

這就是authcache的核心!

當然authcache還可以做更多,比如:

1. 根據用戶不同,生產不同的緩存,需要處理.

2. 配合authcache_p13n模塊,動態處理某些局部頁面,比如某個block.

3. 修改緩存的某個些內容,稍后會詳細講解.

等等,這就是authcache比boost靈活的地方,當然也是缺點,需要調用很多PHP、數據庫等等,肯定比boost慢一些.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产视频xxx| 日本高清中文字幕在线| 国产亚洲精品久久久网站好莱| 国产美女在线看| 大香伊人中文字幕精品| 久久久久久久久免费视频| 精品一区二区三区在线成人| 蜜桃av在线免费观看| av一本在线| 92久久精品| 亚洲欧美久久婷婷爱综合一区天堂| 中文字幕在线影院| 国产天堂素人系列在线视频| 91福利在线免费| 国产黄在线观看免费观看不卡| 激情在线视频播放| 在线天堂中文www视软件| 尤物网址在线观看| 国产精品久久久精品a级小说| 国产天堂在线| 在线中文av| 最新av免费看| 欧美啪啪精品| 日本一本久久| 久草在线视频网| 成人福利视频导航| 国产porn在线| 最近高清中文在线字幕在线观看| 99在线免费观看| 日本久久国产| 中文av在线播放| 免费高清av| 伊人影院蕉久影院在线播放| 国产传媒在线播放| 国产剧情在线一区| 久久精品国产亚洲a∨麻豆| 一级二级三级在线观看| 国产黄色高清在线| 国产视频在线播放| 国产一区二区三区不卡在线| 超碰免费97在线观看| 亚洲免费网站在线观看| 中文字幕av在线| 国产精品剧情一区二区三区| 国产精品久久在线| 国产福利小视频在线观看| 尤物网在线观看| 国产精品一区二区三区高清在线 | 日本高清中文字幕| 尤物网站在线| 国产精品99999| 国产一卡2卡3卡免费网站| 天堂中文字幕在线| 国产日韩网站| 国产高清av在线| 中文字幕2019第三页| av三级在线观看| 免费电影网站在线视频观看福利| 奇米影视狠狠狠| www.操.com| 好男人免费精品视频| 丁香花高清视频完整版在线观看| 国产一区在线视频观看| 久久91精品视频| 国产视频一二三区| 99在线视频观看| 精品孕妇一区二区三区| 国产三级av在线| 天天插天天狠天天透| 狠狠操视频网| aaa大片在线观看| 国产老肥熟xxxx在线观看| 国产高清视频在线播放| 久久综合精品视频| av网址在线看| 国产三级视频在线看| 日本欧洲一区| 国产在线小视频| av免费网站在线观看| 国产在线观看av| av在线首页| 国产娇喘精品一区二区三区图片| 日本a级黄色| 国产极品嫩模在线视频一区| 日本亚洲精品| 精品国语对白精品自拍视| 五月天婷婷基地| 麻豆精品免费视频入口| 91在线超碰| 国产a国产a国产a| 国产探花视频在线观看| 免费视频二区| 热99re久久精品精品免费| 在线免费看黄网站| 国产a国产a国产a| 国产精品国产国产aⅴ| 成人免费一区二区三区视频网站| 97福利电影| 国产一区二区在线|播放| jizz在线免费观看| 亚洲精品在线播放视频| 亚洲综合在线网| 在线亚洲电影| 亚洲电影先锋| 黄色av免费看| 国产视频精品久久| 99免费视频| 日本欧洲一区| 久久一本精品| 国产网站观看9久| 国产福利热线视频| av二区三区| 欧美另类在线视频| 国产毛片在线看| 午夜在线小视频| 2019天天操夜夜操| a级在线观看| 导航福利在线| 国产h色视频在线观看| 日本一卡二卡四卡精品| 丁香综合在线| 精品入口麻豆传煤| 欧美日韩**字幕一区| 2018av男人天堂| sese在线视频| 国产精美视频| 就爱干草视频| 国产va在线| 最新国产在线| 精品电影在线| 国产资源在线看| 国产videos| 最近免费中文字幕大全免费第三页| 国产精品777一区二区| 亚洲男人的天堂成人| 九色成人在线| 99久热re在线精彩视频| 国产在线色视频| av中文资源在线| 国产啊啊啊视频在线观看| 久久99精品久久久久久野外| 中文日本在线观看| 国产高清视频在线| 国产亚洲精品久久久网站好莱| 四虎影视成人永久免费观看视频| 日本国产在线| 国产婷婷视频在线| 国产在线一二三区| 可以免费看污视频的网站| 亚洲第一成人在线视频| 99久热re在线精彩视频| 国产极品嫩模在线视频一区| 中文字幕在线观看播放| 午夜伦全在线观看| 国产精品自拍亚洲| 中文字幕第一页av| 国产天堂在线观看| 国产精品理人伦一区二区三区| 大香伊人久久| gogo在线高清视频| 四虎影视成人永久免费观看视频| 国产超碰精品在线观看| 国产69久久| 1区不卡电影| 国产h在线观看| 2020亚洲男人天堂| 在线视频中文字幕久| 国产精品国产三级国产试看| 国产视频福利在线| 精品999视频| www.九九热.com| 国产精品亚洲色图| 777电影在线观看| 欧美日韩亚洲国内综合网| 国产在线传媒| 国产黄色在线免费观看| 夜夜操com| 成人超碰在线| 国产精品777一区二区| av中文在线| 午夜视频99| 永久免费网站在线| 天堂资源最新在线| 在线色视频网| 久热免费视频| 国产福利微拍精品一区二区| 四虎精品视频| 国产丝袜精品丝袜| 青青免费在线视频| 国产视频三级在线观看播放| 永久免费av网站| 中文字幕中文字幕在线中高清免费版| 91福利在线免费| 精品视频二区| 久热国产在线视频| 在线中文资源天堂| 国产一二在线观看| 人日人天天爽| 在线免费看黄av| 国产精品第八页|