亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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慢一些.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲iv一区二区三区| 7m精品福利视频导航| 亚洲国产精品嫩草影院久久| 亚洲一级免费视频| 久久精品青青大伊人av| 8x海外华人永久免费日韩内陆视频| 日本久久久久久久久| 国产精品久久久久久久久久小说| 两个人的视频www国产精品| 欧美床上激情在线观看| 久久成人精品视频| 91精品国产高清久久久久久久久| 久久久亚洲国产天美传媒修理工| 国产日韩精品电影| 日韩在线观看免费av| 在线视频欧美日韩精品| 亚洲国产99精品国自产| 欧美日韩福利电影| 亚洲欧美日韩久久久久久| 热99精品里视频精品| 日韩免费在线电影| 亚洲精品视频在线播放| 在线成人激情视频| 国产成人精品视频在线观看| 日韩免费电影在线观看| 欧美自拍视频在线观看| 欧美日韩国产精品一区二区不卡中文| 久久影院中文字幕| 91精品综合久久久久久五月天| 国产美女久久精品香蕉69| 国产精品成人免费视频| 亚洲第一福利网站| 日韩欧美高清视频| 日韩欧美有码在线| 色偷偷噜噜噜亚洲男人的天堂| 欧美另类第一页| 欧美日韩亚洲天堂| 97在线免费视频| 97在线视频免费播放| 久久久久久中文字幕| 国产精品电影网站| 成人啪啪免费看| 在线免费看av不卡| 国产美女精品视频免费观看| 欧美性在线观看| 欧美精品在线免费| 亚洲欧美制服中文字幕| 久久久精品影院| 日韩视频在线一区| 亚洲精品一区中文字幕乱码| 成人午夜在线观看| 91欧美精品午夜性色福利在线| 久久99久久亚洲国产| 日韩国产精品视频| 国产精品男人爽免费视频1| 国产中文字幕日韩| 国产精品视频资源| 日韩理论片久久| 国产区精品视频| 伊人伊人伊人久久| 亚洲欧美另类国产| 欧美又大又硬又粗bbbbb| 精品国产户外野外| 欧美大片免费看| 亚洲欧洲日韩国产| 欧美黑人一区二区三区| 韩国19禁主播vip福利视频| 欧美性精品220| 日韩在线观看免费全集电视剧网站| 国产精品美腿一区在线看| 久久久黄色av| 国产性色av一区二区| 成人精品aaaa网站| 国产精品网站视频| 欧美成人第一页| 国产精品成人aaaaa网站| 欧美激情一区二区三区高清视频| 欧美日韩国产综合视频在线观看中文| 国产精品久久网| 日韩av在线电影网| 国产精品自拍视频| 夜夜嗨av色一区二区不卡| 久久久精品视频在线观看| 91人人爽人人爽人人精88v| 国产精品久久久久久久久男| 亚洲深夜福利视频| 亚洲视频在线视频| 国产精品午夜一区二区欲梦| 亚洲少妇中文在线| 亚洲福利视频专区| 日韩在线视频观看正片免费网站| 国产午夜精品理论片a级探花| 欧美午夜精品久久久久久浪潮| 欧美亚洲成人免费| 亚洲欧美一区二区三区四区| 欧美视频在线观看 亚洲欧| 奇米影视亚洲狠狠色| 欧美亚洲成人网| 欧洲亚洲女同hd| 久久久精品国产一区二区| 蜜臀久久99精品久久久无需会员| 亚洲摸下面视频| 亚洲人成毛片在线播放| 精品中文视频在线| 91久久久久久久久久久久久| 精品久久久一区| 亚洲国产小视频| 亚洲国产福利在线| 久久久久久伊人| 2019日本中文字幕| 欧美电影免费观看高清完整| 欧美极品美女视频网站在线观看免费| 国模精品一区二区三区色天香| 91黑丝高跟在线| 亚洲国产精品久久久久秋霞蜜臀| 国产丝袜视频一区| 国模精品一区二区三区色天香| 6080yy精品一区二区三区| 久久久av亚洲男天堂| 亚洲一区精品电影| 91久久中文字幕| 激情成人在线视频| 亚洲美女黄色片| 91在线免费观看网站| 欧美性高潮床叫视频| 97视频在线观看免费| 国自在线精品视频| 精品久久久久久久久中文字幕| 欧美高清电影在线看| 欧美日韩亚洲精品一区二区三区| 不卡av电影在线观看| 自拍偷拍亚洲在线| 日韩成人在线视频观看| 欧美乱大交xxxxx| 色综合久久久888| 久久成人综合视频| 国产精品嫩草影院久久久| 91禁外国网站| 91久久中文字幕| 91天堂在线观看| 久久久国产精彩视频美女艺术照福利| 欧美一级淫片aaaaaaa视频| 亚洲美女又黄又爽在线观看| 欧美日韩激情小视频| 国产成人a亚洲精品| 国产美女久久久| 亚洲人成电影网站| 亚洲丝袜一区在线| 亚洲日韩中文字幕在线播放| 欧美性20hd另类| 成人国产亚洲精品a区天堂华泰| 茄子视频成人在线| 97在线精品国自产拍中文| 成人国产精品一区| 欧美精品精品精品精品免费| 国产欧美一区二区三区久久| 欧美黑人xxx| 国产成人精品在线播放| 亚洲成avwww人| 国产视频自拍一区| 久久亚洲精品网站| 成人在线激情视频| 2020欧美日韩在线视频| 成人自拍性视频|