亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

phpcms緩存使用總結(memcached、eaccelerator、shm)
來源:易賢網 閱讀:1175 次 日期:2014-08-27 15:38:44
溫馨提示:易賢網小編為您整理了“phpcms緩存使用總結(memcached、eaccelerator、shm)”,方便廣大網友查閱!

a.模板編譯緩存

參考文件include/global.func.php及include/template.func.php

模 板編譯緩存的原理其實很簡單,如果模板是第一次編譯,則直接編譯它,如果不是第一次編譯,則比較模板文件($tplfile)及模板緩存文件 ($compiledtplfile)的修改時間,如果模板文件的修改時間大于編譯過的模板緩存文件,則編譯模板,否則不編譯模板,提高了程序的執行效 率。

代碼如下:

function template($module = 'phpcms', $template = 'index')

{

global $CONFIG;

$compiledtplfile = $CONFIG['templatescachedir'].$module.'_'.$template.'.tpl.php';

if($CONFIG['templaterefresh'])

{

$tplfile = PHPCMS_ROOT.'/templates/'.$CONFIG['defaulttemplate'].'/'.$module.'/'.$template.'.html';

if(!file_exists($compiledtplfile) || @filemtime($tplfile) > @filemtime($compiledtplfile))

{

require_once PHPCMS_ROOT.'/include/template.func.php';

template_refresh($tplfile, $compiledtplfile);

}

}

return $compiledtplfile;

}

b.在動態頁面里面產生靜態的緩存文件

與c的緩存原理類似,只是此處生成的文件名相對固定

以問吧模塊為例進行說明

用http://www.chf.com/opensource/phpcms2007_sp6_gbk/phpcms/wenba/進行訪問

此目錄下有個index.php文件,判斷當前目錄下是否存在名為index_cache.html的文件,如果有沒有過失效期,則直接包含此文件,否則動態地讀取完數據后保存為index_cache.html文件,以備下次使用。

文件index.php中的內容:

代碼如下:

<?php

require_once './include/common.inc.php';

$lastedittime = @filemtime('index_cache.html');

$lastedittime = $PHP_TIME-$lastedittime;

$autoupdatetime = intval($MOD['autoupdate']); //$MOD['autoupdate']來自緩存文件data/cache/wenba_setting.php中的內容

if(file_exists('index_cache.html') && $lastedittime<$autoupdatetime)

{

echo "include cache file";

include 'index_cache.html';

}

else

{

echo "read dynamic page";

...

?>

怎么判斷文件是否失效呢,文件data/cache/wenba_setting.php中有如下的設置,其中字段autoupdate的值就是文件失效的時間,單位是秒,在后臺可以進行設置

文件wenba_setting.php是從哪兒來的呢,進行安裝時自動把各種模塊的數據保存到數據庫中了,安裝時就生成緩存數據了,在include/common.inc.php中函數cache_all也可以生成緩存,后臺進行設置時cache會自動更新的

代碼如下:

<?php

return array (

'higth_score' => '100',

'anybody_score' => '2',

'answer_give_credit' => '5',

'vote_give_credit' => '1',

'highscore' => '2',

'vote_give_actor' => '公司白領</p> <p>魔法師</p> <p>科舉奪魁</p> <p>武將</p> <p>江湖奇俠',

'autoupdate' => '10',

'name' => '問吧',

'moduledir' => 'wenba',

'moduledomain' => '',

'linkurl' => '/opensource/phpcms2007_sp6_gbk/phpcms/wenba/',

);

?>

include/global.func.php

更新模塊設置函數

代碼如下:

function module_setting($module, $setting)

{

global $db,$MODULE,$LANG;

if(!is_array($setting) || !array_key_exists($module,$MODULE)) return FALSE;

if(isset($setting['moduledomain']))

{

$moduledomain = $setting['moduledomain'];

$db->query("UPDATE ".TABLE_MODULE." SET moduledomain='$moduledomain' WHERE module='$module'");

unset($setting['moduledomain']);

}

$setting = addslashes(serialize(new_stripslashes($setting)));

//將某個模塊的多個設置的值經數組序列化以后保存在一個字段setting中

$db->query("UPDATE ".TABLE_MODULE." SET setting='$setting' WHERE module='$module'");

cache_module($module);

cache_common();

return TRUE;

}

c.在動態頁面里面產生靜態的緩存文件

與b的緩存原理類似,只是此處生成的文件名是根據計算$PHP_SELF與$PHP_QUERYSTRING的md5值生成的文件名,相對于所有php動態頁面來說都是一樣的,這個思想比較精典,值得借簽

以問吧模塊為例進行說明

文件調用順序為:index.php -> js.php -> ad.php -> global.func.php

用http://www.chf.com/opensource/phpcms2007_sp6_gbk/phpcms/wenba/進行訪問

此目錄下有個index.php文件,判斷當前目錄下是否存在名為index_cache.html的文件,如果有,則直接包含此文件,如果不存在此文件,則動態地讀取完數據后保存在index_cache.html文件,以備下次使用

用上述的url訪問時,頁面里面包含有如下的一行js代碼

<script language="javascript" src="/opensource/phpcms2007_sp6_gbk/phpcms/data/js.php?id=1"></script>

此js代碼其實就是動態調用php頁面的內容

http://www.chf.com/opensource/phpcms2007_sp6_gbk/phpcms/data/js.php?id=1

js.php文件的內容:

代碼如下:

<?php

chdir('../ads/');

require './ad.php';

?>

ad.php的內容:

代碼如下:

<?php

define('SHOWJS', 1);

require './include/common.inc.php';

require MOD_ROOT.'/include/global.func.php';</p> <p>$placeid = intval($id);</p> <p>$query ="SELECT * FROM ".TABLE_ADS." AS a LEFT JOIN ".TABLE_ADS_PLACE." AS p ON (a.placeid=p.placeid) WHERE a.placeid=".$placeid." AND a.fromdate<=UNIX_TIMESTAMP() AND a.todate>=UNIX_TIMESTAMP() AND p.passed=1 AND a.passed=1 AND a.checked=1 ORDER BY a.addtime";

$ads = $db->get_one($query, "CAHCE", 10240);

if(!$ads) exit('document.write("")');</p> <p>$db->query("UPDATE ".TABLE_ADS." SET views=views+1 WHERE adsid=".$ads['adsid']);</p> <p>$content = ads_content($ads);

$templateid = $ads['templateid'] ? $ads['templateid'] : 'ads';

include template('ads', $templateid);

phpcache();

?>

ad.php里面調用了phpcache函數,參考文件include/global.func.php

代碼如下:

function phpcache($is_js = 0)

{

global $CONFIG,$cachefiledir,$cachefile;

if(!$is_js && $CONFIG['phpcache'] != '2') return FALSE;

$contents = ob_get_clean(); //讀取緩沖區里面的內容

if($is_js) $contents = strip_js($contents);

if($CONFIG['phpcache'] == '2' && $cachefiledir && $cachefile)

{

dir_create($cachefiledir);

file_put_contents($cachefile, $contents); //在這兒生成一個.html格式的文件,當下次以同樣的url訪問時,會直接讀取緩存了,參見include/common.inc.php中的代碼, 這兒的代碼是非常非常精典的,大家好好借鑒、好好模仿吧

@chmod($cachefile, 0777);

}

/*

向瀏覽器發送http header,跟瀏覽器說,此頁面不緩存,還告訴瀏覽器頁面的最后修改時間

第一次訪問js.php?id=1時向瀏覽器發送http header,第二次或以后再訪問此url時,由于上次已經生成了緩存,所以在include/common.inc.php中直接調用緩存文件了,直到 緩存失效后再次執行此處的動態代碼。此處發送的header控制緩存是相對于瀏覽器來說的;而通過file_put_contents生成的緩存是相對于 電腦硬盤來說的,是不一樣的。

*/

header('Expires: Mon, 26 Jul 2000 05:00:00 GMT');

header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');

header('Cache-Control: no-cache, must-revalidate');

header('Pragma: no-cache');

echo $contents;

}

上面的phpcache函數中的全局變量$cachefiledir,$cachefile是從哪里來的呢,從這兒來的

文件include/common.inc.php中的內容

代碼如下:

if(!defined('IN_ADMIN'))

{

if($CONFIG['dbiscache']) $db_file .= '_cache';

if($CONFIG['phpcache'] == '2')

{

$cachefileid = md5($PHP_SELF.'?'.$PHP_QUERYSTRING);

$cachefiledir = PHPCMS_ROOT.'/data/phpcache/'.substr($cachefileid, 0, 2).'/';

$cachefile = $cachefiledir.$cachefileid.'.html';

//echo "cachefile:$cachefile";

if(file_exists($cachefile) && ($PHP_TIME < @filemtime($cachefile) + $CONFIG['phpcacheexpires']))

{

require $cachefile;

exit;

}

}

if($PHP_QUERYSTRING && preg_match("/^(.*).(htm|html|shtm|shtml)$/", $PHP_QUERYSTRING, $urlvar))

{

parse_str(str_replace(array('/', '-', ' '), array('&', '=', ''), $urlvar[1]));

}

}

d.數據庫查詢結果緩存

下面是include/common.inc.php中的幾行代碼

代碼如下:

$db_file = $db_class = 'db_'.$CONFIG['database']; //$CONFIG['database']位于config.inc.php中,配置可以使用自己的數據庫,如mysql,sqlite,sqlserver等

require PHPCMS_ROOT.'/include/'.$db_file.'.class.php';

$db = new $db_class;

$db->connect($CONFIG['dbhost'], $CONFIG['dbuser'], $CONFIG['dbpw'], $CONFIG['dbname'], $CONFIG['pconnect']);

$db->iscache = $CONFIG['dbiscache']; //是否啟用 sql cache (只對前臺起作用,建議在不生成html并且訪問量過大時開啟)

$db->expires = $CONFIG['dbexpires']; //sql cache 過期時間(秒)

db_mysql_cache.class.php中的代碼

代碼如下:

function query($sql , $type = '' , $expires = 3600, $dbname = '')

{

if($this->isclient)

{

$dbname = $dbname ? $dbname : $this->dbname;

$this->select_db($dbname);

}

/*

$this->iscache表示是否啟動了數據庫查詢緩存

如果啟用了數據庫查詢緩存且$type為CACHE且是select語句,則啟用查詢緩存

個人感覺這兒$type參數用strtoupper處理一下更好了

*/

if($this->iscache && $type == 'CACHE' && stristr($sql, 'SELECT'))

{

$this->caching = 1; //成員變量caching標識啟用了數據庫查詢緩存,用在下面的fetch_array,num_rows,free_result函數中,其實用 iscache就可以判斷了,沒有必要再用一個成員變量了

$this->expires = $expires; //數據庫緩存數據的失效期

return $this->_query_cache($sql); //然后調用_query_cache方法

}

$this->caching = 0;

$func = $type == 'UNBUFFERED' ? 'mysql_unbuffered_query' : 'mysql_query';

if(!($query = $func($sql , $this->connid)) && $type != 'SILENT')

{

$this->halt('MySQL Query Error', $sql);

}

$this->querynum++;

return $query;

}</p> <p>function _query_cache($sql)

{

$this->cache_id = md5($sql); //計算$sql的md5值,然后作為cache_id

$this->result = array();

$this->cursor = 0;

$this->cache_file = $this->_get_file(); //得到cache文件名

//如果cache數據已經過期,則重新從數據庫中取得查詢結果,然后保存在數據庫中

if($this->_is_expire())

{

$this->result = $this->_get_array($sql); //從數據庫中取結果

$this->_save_result(); //保存結果到緩存數據中

}

else

{

$this->result = $this->_get_result(); //緩存沒過期直接取緩存數據

}

return $this->result;

}</p> <p> function _get_file()

{

global $CONFIG;

//cache文件的主目錄一般是data/dbcache

return $CONFIG['dbcachedir'].substr($this->cache_id, 0, 2).'/'.$this->cache_id.'.php';

}</p> <p>function _is_expire()

{

global $PHP_TIME;

return !file_exists($this->cache_file) || ( $PHP_TIME > @filemtime($this->cache_file) + $this->expires );

}</p> <p>/*

由于方法_get_array只是被方法_query_cache調用,所以在此方法里面直接用函數mysql_unbuffered_query了,因為mysql_unbuffered性能好一點,參考

<a >http://bbs.chinaunix.net/viewthread.php?tid=958067&extra=page%3D4</a>

*/

function _get_array($sql)

{

$this->cursor = 0;

$arr = array();

$result = mysql_unbuffered_query($sql, $this->connid);

while($row = mysql_fetch_assoc($result))

{

$arr[] = $row;

}

$this->free_result($result);

$this->querynum++;

return $arr;

}</p> <p>function _save_result()

{

if(!is_array($this->result)) return FALSE;

dir_create(dirname($this->cache_file));

file_put_contents($this->cache_file, "<?phpn return ".var_export($this->result, TRUE).";n?>");

@chmod($this->cache_file, 0777);

}</p> <p> function _get_result()

{

return include $this->cache_file;

}</p> <p>function fetch_array($query, $result_type = MYSQL_ASSOC)

{

return $this->caching ? $this->_fetch_array($query) : mysql_fetch_array($query, $result_type);

}</p> <p>//從數據庫中獲取查詢的結果

function _fetch_array($result = array())

{

if($result) $this->result = $result;

return isset($this->result[$this->cursor]) ? $this->result[$this->cursor++] : FALSE;

}</p> <p>function num_rows($query)

{

return $this->caching ? $this->_num_rows($query) : mysql_num_rows($query);

}</p> <p>function free_result($query)

{

if($this->caching==1) $this->result = array();

else @mysql_free_result($query);

}

如果把上述的文件存儲改為用memcached、eaccelerator、shm等來進行存儲的話效率會更高,改動起來也不是太難,后臺可以加一個設置選項,如分別是

文件,memcached,eaccelerator,shm等讓管理員進行設置,然后調用相應的存儲系統進行存儲

更多信息請查看IT技術專欄

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
亚洲一区在线直播| 一本色道精品久久一区二区三区| 国产欧美日本| 在线欧美视频| 136国产福利精品导航网址| 久久精品女人天堂| 久久青青草原一区二区| 亚洲精品九九| 国产精品高清一区二区三区| 欧美视频官网| 欧美精品一级| 国内精品久久久久久久影视蜜臀| 国产一区在线免费观看| 一区二区视频欧美| 99精品视频网| 美女网站久久| 欧美日韩国产成人精品| 国产精品二区在线观看| 在线看片成人| 国产一区二区三区奇米久涩| 国产精品区一区| 免费在线一区二区| 欧美日本一区二区视频在线观看| 欧美日韩ab| 亚洲高清毛片| 亚洲欧美网站| 亚洲视频二区| 亚洲在线视频| 女同一区二区| 国内精品亚洲| 国产欧美一级| 欧美精品导航| 国产欧美综合一区二区三区| 久久亚洲风情| 最新日韩在线| 狼狼综合久久久久综合网| 欧美日韩精品免费观看视频完整| 国内精品**久久毛片app| 红桃视频欧美| 国产精品久久亚洲7777| 夜夜爽av福利精品导航| 久久久水蜜桃| 亚洲午夜一区| 久久综合久久久| 一二三区精品| 国产精品xxx在线观看www| 亚洲色诱最新| 亚洲国产精品一区二区第一页| 亚洲欧美日韩在线综合| 影院欧美亚洲| 欧美精品偷拍| 新67194成人永久网站| 免费日韩av片| 正在播放亚洲| 在线日本高清免费不卡| 久久精品亚洲一区二区| 亚洲国产精品一区制服丝袜 | 狠狠爱综合网| 性一交一乱一区二区洋洋av| 老牛嫩草一区二区三区日本| 日韩五码在线| 一区二区视频在线观看| 欧美喷水视频| 欧美一区免费视频| 欧美亚洲专区| 国产精品入口| 国产精品一区在线观看| 在线亚洲自拍| 一二三区精品| 一区二区三区四区国产| 亚洲人人精品| 亚洲黄页一区| 亚洲黄色影院| 亚洲三级影院| 亚洲高清网站| 亚洲精品视频啊美女在线直播| 欧美一区二区三区久久精品| 噜噜噜在线观看免费视频日韩| 国产美女诱惑一区二区| 国产精品视频免费观看| 一二三区精品| 亚洲一区二区成人| 亚洲专区一区二区三区| 午夜在线视频观看日韩17c| 国产农村妇女精品一二区| 中文一区在线| 久久精品人人| 亚洲欧美综合一区| 欧美亚洲一区| 欧美大片一区| 国内精品久久国产| 影音国产精品| 国产欧美午夜| 噜噜噜91成人网| 欧美在线一二三区| 国产精品久久| 亚洲巨乳在线| 亚洲欧美日韩精品综合在线观看 | 999在线观看精品免费不卡网站| 亚洲日本免费| 午夜亚洲性色福利视频| 欧美精品三区| 一区二区三区精品视频在线观看| 午夜综合激情| 亚洲一二三区精品| 亚洲免费婷婷| 国产精品二区三区四区| 99综合视频| 亚洲一区中文| 国产综合欧美| 久久久www| 亚洲人成人一区二区三区| 亚洲欧美日韩国产一区| 欧美日韩日本网| 国产精品视频免费一区| 欧美日韩视频在线一区二区观看视频| 伊人久久大香线蕉综合热线| 亚洲一区国产| 国产精品chinese| 99成人精品| 欧美日韩网站| 久久国产精品毛片| 亚洲激情一区二区| 午夜精品视频| 亚洲一区国产一区| 激情久久综合| 欧美日韩精品免费观看视频完整| 国产日产高清欧美一区二区三区| 欧美日韩一区二区三| 夜夜夜久久久| 一区免费视频| 午夜精品久久| 国产农村妇女毛片精品久久莱园子 | 欧美黄色精品| 亚洲看片一区| 亚洲激情国产| 伊人成年综合电影网| 欧美日韩午夜| 欧美理论在线| 午夜精品亚洲| 欧美在线免费一级片| 久久本道综合色狠狠五月| 国产色综合网| 国产精品毛片一区二区三区| 亚洲精品美女| 亚洲精选91| 老司机午夜精品视频在线观看| 国产日韩亚洲| 国产亚洲激情| 国产精品一区视频网站| 国产日韩欧美在线播放不卡| 亚洲精品偷拍| 亚洲激情在线| 亚洲巨乳在线| av成人毛片| 一区二区精品在线| 一区二区三区成人精品| 一本色道久久综合亚洲精品高清 | 9国产精品视频| 久久综合导航| 午夜一级久久| 国产色综合网| 久久精品一本| 国产精品99一区二区| 国产精品地址| 一本色道88久久加勒比精品| 国产欧美日本| 久久久999| 国产精品av久久久久久麻豆网| 合欧美一区二区三区| 国模大胆一区二区三区| 亚洲黄网站黄| 亚洲在线播放| 欧美精品二区| 日韩香蕉视频| 久久在线91| 亚洲欧洲一区| 久久久亚洲一区| 极品日韩久久| 欧美亚洲一区| 国内精品**久久毛片app| 99热免费精品| 久久一区二区精品| 亚洲国产高清视频| 久久国产成人| 亚洲欧洲日本一区二区三区| 久久久久久国产精品mv| 影音先锋在线一区| 久久蜜桃资源一区二区老牛| 久久精品亚洲一区二区| 欧美日韩理论| 亚洲一区免费| 亚洲高清电影| 欧美激情1区| 国产日本精品| 国产综合自拍| 久久午夜精品一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 免费日韩av片| 国产欧美丝祙| 亚洲精品乱码久久久久久蜜桃麻豆| 免费在线亚洲欧美| 国产日韩精品久久| 亚洲二区三区四区| 久久最新视频| 香蕉久久夜色| 国产亚洲二区| 日韩一级在线| 亚洲调教视频在线观看| 久久影院亚洲| 久久国产88| 国产一区二区你懂的| 伊人久久亚洲影院| 欧美午夜视频| 欧美日本精品| 狂野欧美一区| 看欧美日韩国产| 久久久亚洲一区| 亚洲看片免费| 亚洲毛片一区| 日韩香蕉视频| 一本色道久久综合亚洲精品不卡| 亚洲视频日本| 亚洲国产日韩欧美| 亚洲韩日在线| 日韩视频在线观看国产| 亚洲乱亚洲高清| 亚洲午夜在线| 亚洲午夜精品福利| 欧美一区二区三区四区在线观看地址| 亚洲一区二区免费看| 国产精品久久久久久久久久妞妞 | 亚洲欧美伊人| 欧美激情在线| 国精品一区二区| 亚洲国产第一| 亚洲一区图片| 欧美1区视频| 影音先锋中文字幕一区二区| 亚洲三级免费| 精品动漫一区| 欧美日韩国产探花| 激情综合电影网| 99综合精品| 国产精品亚洲综合| 久久精品日韩| 狠狠色综合网站久久久久久久| 尤物网精品视频| 一区二区三区av| 久久亚洲午夜电影| 美女爽到呻吟久久久久| 亚洲伊人网站| 欧美中日韩免费视频| 欧美 亚欧 日韩视频在线| 国产精品va| 国产欧美日本在线| 久久午夜精品一区二区| 亚洲无线视频| 香蕉久久a毛片| 国产综合18久久久久久| 国产手机视频一区二区| 在线免费高清一区二区三区| 亚洲欧美久久久| 欧美激情视频一区二区三区在线播放 | 亚洲人人精品| 午夜精品电影| 国产色综合网| 亚洲视频精品| 久久久精品午夜少妇| 亚洲黄色成人久久久| 久久久一本精品99久久精品66| 亚洲经典三级| 欧美暴力喷水在线| 亚洲一区二区三区四区中文| 韩日成人av| 久久久久久久久一区二区| 亚洲精品日韩久久| 国内精品久久久久久久果冻传媒| 国产美女诱惑一区二区| 欧美精品日韩| 久久精品毛片| 亚洲欧美日韩精品一区二区| 91久久国产自产拍夜夜嗨| 久久综合图片| 久久国产精品免费一区| 99视频+国产日韩欧美| 欧美日韩国产在线一区| 欧美专区18| 国一区二区在线观看| 国产亚洲毛片在线| 亚洲麻豆视频| 在线视频观看日韩| 亚洲午夜精品一区二区| 欧美精品日本| 欧美jjzz| 欧美成人中文| 久久久蜜桃一区二区人| 亚洲制服av| 免费亚洲网站| 新狼窝色av性久久久久久| 夜夜精品视频| 永久域名在线精品| 亚洲国产精品第一区二区三区| 国内外成人免费视频| 国内一区二区三区| 国产一区自拍视频| 国产精品xvideos88| 国产精品s色| 久久久久.com| 午夜精品视频| 国内精品久久久久久久影视蜜臀 | 在线精品一区| 亚洲精品乱码视频| 国产日韩高清一区二区三区在线| 99日韩精品| 亚洲免费综合| 欧美精品99| 在线看片成人| 国产精品嫩草99av在线| 国产九区一区在线| 久久精品欧洲| 欧美日韩一区二区三区在线观看免| 欧美三级午夜理伦三级中文幕| 激情久久婷婷| 国产精品三区www17con| 久久综合福利| 在线观看一区| 亚洲一区二区三区免费在线观看| 久久亚洲图片| 午夜国产一区| 亚洲高清视频一区| 欧美亚洲专区| 亚洲一区尤物| 在线视频国内自拍亚洲视频| 国产精品mm| 欧美国产专区| 欧美1区视频| 欧美成人dvd在线视频| 美日韩精品视频| 亚洲影音先锋| 香蕉久久国产| 久久久久高清| 欧美大片专区| 欧美午夜免费影院| 国模大胆一区二区三区| 亚洲视频一区| 91久久综合| 亚洲看片网站| 亚洲专区一区二区三区| 国产一区二区精品| 亚洲欧美日本日韩| 在线午夜精品| 欧美综合国产| 欧美视频导航| 精品福利av| 中国成人亚色综合网站| 国产精品久久亚洲7777| 亚洲一区二区伦理| 久久久久久久久久久久久久一区| 裸体一区二区| 欧美色综合网| 在线一区欧美| 狂野欧美性猛交xxxx巴西| 欧美日韩一区二区三区在线观看免 | 亚洲视频成人| 亚洲深夜av| 久久久久久久久久码影片| 欧美精选在线| 亚洲精品美女久久7777777| 国产欧美日韩综合一区在线观看| 国产精品夜夜夜| 欧美成人精品| 亚洲精品1区| 久久精品首页| 狠狠色综合网| 国产精品一区二区三区四区五区 | 中文有码久久| 久久久精品网| 91久久中文| 欧美一区二区三区在线免费观看| 国产在线欧美| 国产日韩一区二区三区在线播放| 久久深夜福利| 99国产精品久久久久久久| 麻豆成人av| 亚洲国产日韩在线| 久久人人97超碰国产公开结果| 精久久久久久| 久久精品卡一| 在线综合亚洲| 精品不卡视频| 欧美极品一区| 蜜桃av久久久亚洲精品| 亚洲精品乱码久久久久久蜜桃91| 六月婷婷一区| 国产日韩欧美一区二区三区在线观看 | 国产精品激情电影| 亚洲在线免费| 91久久精品www人人做人人爽| 欧美一区国产在线|