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

首頁 > 開發(fā) > PHP > 正文

Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法

2024-05-04 23:43:58
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法,以項(xiàng)目實(shí)例形式較為詳細(xì)的分析了Laravel框架使用Caching緩存的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
 

本文實(shí)例講述了Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法。分享給大家供大家參考,具體如下:

昨天想把自己博客的首頁做一下緩存,達(dá)到類似于生成靜態(tài)頁緩存的效果,在群里問了大家怎么做緩存,都挺忙的沒多少回復(fù),我就自己去看了看文檔,發(fā)現(xiàn)了Caching這個(gè)部分,其實(shí)之前也有印象,但是沒具體接觸過,顧名思義,就是緩存了,那肯定和我的需求有點(diǎn)聯(lián)系,我就認(rèn)真看了看,發(fā)現(xiàn)的確是太強(qiáng)大了,經(jīng)過很簡單的幾個(gè)步驟,我就改裝好了首頁,用firebug測(cè)試了一下,提高了幾十毫秒解析時(shí)間,當(dāng)然了有人會(huì)笑這有必要嗎,豈不是閑的蛋疼?其實(shí)我想這是有必要的,只是在我這里一來訪問人少(其實(shí)根本沒人還,嘿嘿....),二來我在首頁里做的查詢目前還挺少,就一次,就是取得所有博文,如果一個(gè)頁面里面有個(gè)七八次乃至十多次查詢,我想這個(gè)效果應(yīng)該就很明顯了吧!(當(dāng)然了,Raymond哥還有提到用更高級(jí)的專用緩存去做(memcached之類吧貌似),這是要自己能取得服務(wù)器控制權(quán),能自由安裝軟件或者服務(wù)器本來就有這些緩存機(jī)制的情況下才能實(shí)現(xiàn)的,我需求比較簡單,也沒有這個(gè)環(huán)境去做,所以這里就不考慮了)

閑話少說,開始吧,先說說我的具體需求:

一.  實(shí)現(xiàn)首頁的數(shù)據(jù)緩存,如果有沒過期的緩存,就不查數(shù)據(jù)庫,這樣基本模擬出靜態(tài)頁的效果(當(dāng)然了,其實(shí)還是要經(jīng)過php處理的)

二.  實(shí)現(xiàn)刷新指定緩存的功能(這里只有首頁,就單指刷新首頁緩存了,這個(gè)功能,我做到了admin模塊下

具體實(shí)現(xiàn):

一. 查閱文檔,找到能幫我實(shí)現(xiàn)需求的模塊

我查了一下文檔,發(fā)現(xiàn)了有Caching這樣一個(gè)模塊,顧名思義,就是緩存了,那它能否幫到我呢,看看先:

1. http://laravel.com/docs/cache/config  這里是laravel的Caching模塊的實(shí)現(xiàn)

2. 文檔中有如下描述:

The Basics     Imagine your application displays the ten most popular songs as voted on by your users. Do you really need to look up these ten songs every time someone visits your site? What if you could store them for 10 minutes, or even an hour, allowing you to dramatically speed up your application? Laravel's caching makes it simple.

我簡單理解為:

假設(shè)你的應(yīng)用展示了用戶投票最多的10首流行歌曲,你真的需要在每個(gè)人訪問你的網(wǎng)站的時(shí)候都去查一遍這10首歌嗎?如果你想按10分鐘或者是一小時(shí)的頻率來緩存查詢結(jié)果來加速你的應(yīng)用,Laravel 的 caching緩存模塊能將使工作變得異常簡單.

嗯,從這段話,我已經(jīng)了解到這完全符合我現(xiàn)在的需求了,接下來我只需要找到對(duì)應(yīng)的使用方法和API,一步一步來就行了.

二.  學(xué)習(xí)相應(yīng)API等

1. 還是上面文檔,里面接著向下看,有如下描述:

By default, Laravel is configured to use the file system cache driver. It's ready to go out of the box with no configuration. The file system driver stores cached items as files in the cache directory. If you're satisfied with this driver, no other configuration is required. You're ready to start using it.

我簡單理解為:

默認(rèn)情況下,Laravel使用文件系統(tǒng)作為緩存的驅(qū)動(dòng), 這是不需配置就可使用的, 文件系統(tǒng)驅(qū)動(dòng)會(huì)將緩存的數(shù)據(jù)存入緩存目錄下的文件里面去, 如果你覺得合適的話不需要做任何其他的配置直接開始用就行了.

當(dāng)然了, 這也是符合我的想法的, 其實(shí)我就是想把頁面緩存成靜態(tài)頁文件, 用戶再次訪問時(shí)直接輸出緩存的靜態(tài)頁就ok了, 如果需要更高級(jí)的需求, 還可以使用其他的驅(qū)動(dòng),有數(shù)據(jù)庫驅(qū)動(dòng), memcached, redis驅(qū)動(dòng)等, 很好很強(qiáng)大!

2. 接下來查看用例,找到使用方法

用例文檔在這: http://laravel.com/docs/cache/usage

可以看出, 里面有 get, put, forever, remember, has, forget 等方法,這些方法使用也是基本上能 "望文生義" 就能搞定的,呵呵

具體使用方法文檔里面已經(jīng)說的夠詳細(xì), 使用方法一目了然我就不細(xì)說了, 只在代碼里面說吧

三. 具體實(shí)現(xiàn)

1. 我首頁之前的代碼

class Home_Controller extends Base_Controller { public function get_index() {  $posts = Post::with('user')     ->join('users', 'users.id', '=', 'posts.post_author')      -> order_by('posts.created_at', 'desc')       ->get(array('posts.id', 'posts.support', 'posts.against', 'users.username', 'posts.post_author', 'posts.post_title', 'posts.post_body'));  $data = array();  foreach($posts as $p){   $data[] = array(    'id'  => $p -> id,    'support' => $p -> support,    'against' => $p -> against,    'username'=> $p -> username,    'post_author' => $p -> post_author,    'post_title' => $p -> post_title,    'post_body' => $p -> post_body   );  }  return View::make('home.index')    -> with('posts', $data); }}

這是我首頁的controller,作用只有一個(gè), 就是從博文表里面取得所有博文, 然后輸出, 每次有人訪問, 都要查表, 如果沒有發(fā)表新的博文, 也要查表, 的確有很多不必要的開銷

2.  下面是我改裝之后的代碼:

class Home_Controller extends Base_Controller { public function get_index() {  // 添加靜態(tài)緩存支持  // 如果不存在靜態(tài)頁緩存就立即緩存  if ( !Cache::has('staticPageCache_home') ) {   $data = array();   $posts = Post::with('user')      ->join('users', 'users.id', '=', 'posts.post_author')       -> order_by('posts.created_at', 'desc')        ->get(array('posts.id', 'posts.support', 'posts.against', 'users.username', 'posts.post_author', 'posts.post_title', 'posts.post_body'));   foreach($posts as $p){    $data[] = array(     'id'  => $p -> id,     'support' => $p -> support,     'against' => $p -> against,     'username'=> $p -> username,     'post_author' => $p -> post_author,     'post_title' => $p -> post_title,     'post_body' => $p -> post_body    );   }   $res = View::make('home.index')    -> with('posts', $data);   Cache::forever('staticPageCache_home', $res);  }  // 返回緩存的數(shù)據(jù)  return Cache::get('staticPageCache_home'); }}

這里我用到了三個(gè)api

1). Cache::has ,這個(gè)判斷是說如果當(dāng)前不存在 staticPageCache_home 這個(gè)名字的緩存, 就立即去取數(shù)據(jù)

2). Cache::forever,  這個(gè)從用例文檔里面可知是"永久緩存"的意思, 因?yàn)槲乙话愣际呛芮趧诘?如果發(fā)表了博文,自己再去后臺(tái)立即刷新一下緩存就好了, 所以不需要設(shè)置過期啊失效時(shí)間之類的, 當(dāng)然這個(gè)是要按各自的具體需求來的

3). Cache::get , 這句是從緩存里面取出 staticPageCache_home 這個(gè)名字的緩存, 然后作為響應(yīng)內(nèi)容返回

嗯, 就這么簡單, 呵呵, 一個(gè)基本的緩存功能就完成了, laravel的確是不錯(cuò)地!

3. 為后臺(tái)添加刷新緩存功能

還是貼代碼吧, 不過也很簡單:

// 刷新首頁緩存(暫時(shí)只支持首頁)public function get_refreshcache() { /*  @var $GID admin組id */ $GID = 1; if ( Auth::user() -> gid === 1 ) {  $data = array();  $posts = Post::with('user')    ->join('users', 'users.id', '=', 'posts.post_author')    -> order_by('posts.created_at', 'desc')    ->get(array('posts.id', 'posts.support', 'posts.against', 'users.username', 'posts.post_author', 'posts.post_title', 'posts.post_body'));  foreach($posts as $p){   $data[] = array(    'id'  => $p -> id,    'support' => $p -> support,    'against' => $p -> against,    'username'=> $p -> username,    'post_author' => $p -> post_author,    'post_title' => $p -> post_title,    'post_body' => $p -> post_body   );  }  $res = View::make('home.index')    -> with('posts', $data);  Cache::forever('staticPageCache_home', $res);  return '刷新首頁緩存成功!'; } return '對(duì)不起,只有管理員組才可進(jìn)行此操作!';}

我給后臺(tái)添加了一個(gè)項(xiàng)目, 對(duì)應(yīng)這個(gè)方法, 方法內(nèi)容和首頁的大同小異, 取數(shù)據(jù), 然后Cache::forever 刷新一下緩存,就這么簡單,當(dāng)然了,上面的Auth::user() 判斷是個(gè)簡單的判斷,只有管理員組才能進(jìn)行刷新操作,呵呵

嗯, 全部內(nèi)容就這么多, 很簡單, 歡迎童鞋們拍磚指正!



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久99精品久久久久久青青91| 亚洲ww精品| 精品动漫3d一区二区三区免费版| 欧美性xxxx极品高清hd直播| 久久精品国产av一区二区三区| 国产精品呻吟| xxx一区二区| 成人黄色av播放免费| 亚洲视频在线播放| 亚洲欧洲日产国码无码久久99| 一区二区在线影院| 三级成人黄色影院| 国产成人av一区二区三区在线观看| 在线播放中文一区| 日韩欧美在线观看免费| 欧美日韩一区二区精品| 中文字幕黄色大片| 极品尤物av丝袜美腿在线观看| 免费看欧美女人艹b| 97超碰蝌蚪网人人做人人爽| 国产69久久精品成人| 五十路亲子中出中文字幕| 亚洲理论电影| 国产剧情av麻豆香蕉精品| 成人免费精品动漫网站| 亚洲精品久久久北条麻妃| 最新欧美精品一区二区三区| 肉色超薄丝袜脚交一区二区| 久久综合影音| 精品无码av一区二区三区不卡| 米奇777在线影院线| 亚洲欧美制服第一页| 亚洲精品国产精| 四虎影视免费看电影| 麻豆导航在线观看| 国产99久久精品一区二区| 欧美福利视频一区| 三区精品视频观看| 天堂在线资源网| 偷拍自拍在线视频| 秋霞网一区二区三区| 精品一区二区三区四| 欧美激情综合| 欧美国产视频日韩| 成人av电影观看| 国产色a在线观看| 黄色影视在线观看| 亚洲综合视频网站| 午夜裸体女人视频网站在线观看| 亚洲毛片一区二区| 成人午夜看片网址| 精品久久久久久无码中文野结衣| 婷婷丁香综合网| 亚洲一区二区三区视频在线| 天天操夜夜草| 欧美日本三级| 日本免费一区视频| 日本午夜精品视频| 欧美成人免费高清视频| 国产一区精品| 国产精品久久久久久久精| 熟女俱乐部一区二区| 日韩在线一卡二卡| 日韩电影一区二区三区| 老女人性生活视频| 国内一区二区三区在线视频| 又爽又黄的午夜网站| av成人毛片| 久久精品99久久| 四虎永久成年免费影院| 色爱av综合网| 日本久久综合| 91传媒理伦片在线观看| 国产精品日本一区二区三区在线| 国产精品一区在线观看你懂的| 妞干网在线观看视频| 精品日本一区二区三区在线观看| 欧美日韩在线一区二区三区| 欧美人与牛zoz0性行为| 成人ar影院免费观看视频| 欧美一级做a| 日韩av手机在线播放| 日本精品久久电影| 精品视频一区二区三区| 影音先锋中文字幕影院| 蜜桃狠狠色伊人亚洲综合网站| 丰满少妇被猛烈进入| 亚洲japanese制服美女| 自由色视频.| www.午夜av| 青青草视频国产| 亚洲男女视频在线观看| 九色在线观看| 99久久久无码国产精品免费| 欧美日韩 一区二区三区| 久草福利在线视频| 国产成人久久精品77777| 中文字幕一区二区三区乱码不卡| 国产精品久久毛片a| 色综合久久久久久| 亚洲一区成人| 婷婷av一区二区三区| 中文字幕电影一区| 欧美日韩精品在线一区二区| 亚洲涩涩av| 丰满少妇久久久久久久| 一本大道av一区二区在线播放| 色欲狠狠躁天天躁无码中文字幕| 日本1区2区3区视频| 亚洲欧美日韩在线高清直播| 欧美精品一区在线发布| 国产精品电影久久久久电影网| 亚洲精品v亚洲精品v日韩精品| 91精品国产综合久久香蕉的用户体验| 未来日记在线观看| 久久精品噜噜噜成人av农村| 亚洲色图网友自拍| 欧美精品videossex少妇| 337p粉嫩大胆噜噜噜鲁| 亚洲欧美国产日韩综合| 在线观看中文字幕一区| 外国电影一区二区| 91美女视频| 糖心vlog精品一区二区| 国产精品流白浆视频| 高清不卡在线观看av| 第四色播日韩| 日日躁夜夜躁人人揉av五月天| 久久久亚洲欧洲日产国码αv| 亚洲伦伦在线| 99久久这里只有精品| 亚洲国产网址| 一本岛在免费一二三区| 3d精品h动漫啪啪一区二区| 国产人妻精品一区二区三区| 亚洲国产91视频| 欧美xxx.com| 亚洲福利视频久久| 99国产精品| 亚洲欧美国产精品桃花| 在线免费看av| 久久婷婷av| 日韩视频一二三| 日韩在线短视频| 五月天最新网址| 国产电影一区二区在线观看| 亚洲伦理在线观看| 久久影视精品| 精品欧美一区二区久久久| 国产成人精品福利| 日韩激情在线观看| 91涩漫在线观看| 久久久久久亚洲综合影院红桃| 嫩草影视亚洲| 久久人人爽爽爽人久久久| 欧美xxxx黑人xyx性爽| 欧美极品另类videosde| 性综艺节目av在线播放| 国产日韩欧美视频在线观看| 女同一区二区免费aⅴ| 免费观看一区二区三区毛片| 亚洲欧洲日韩一区二区三区| 久久国产波多野结衣| 懂色av一区二区三区在线播放| 又黄又www| 精品日韩欧美一区| 久久伊人蜜桃av一区二区| 久久九九全国免费精品观看| 亚洲精品一区中文| 亚洲精品成人在线| 日韩在线免费播放| 一区二区三区视频在线观看免费| 天天操狠狠操夜夜操| 99国产视频| 国产福利91精品一区二区三区| 欧美中文字幕在线观看| 免费看a级黄色片| 美日韩免费视频| 视频一区二区综合| 国产乱子伦精品无码专区| 色综合久久九月婷婷色综合| 国产在线xxxx| 日韩精品亚洲aⅴ在线影院| 亚洲精品a区| 国产福利电影| 亚洲一区二区不卡免费| 91麻豆精品一二三区在线| 日韩av播放器| 麻豆久久久久久久久久| 全球成人免费直播| www.youjizz.com亚洲| 国产成人精品久久一区二区小说| 无码少妇一区二区| aaaaaa毛片| 日韩中文字幕免费在线观看| 亚欧美一区二区三区| 香蕉成人app| 亚洲一区二区三区精品在线观看| www.青青草| 超碰影院在线观看| 黄色视屏在线免费观看| 丝袜人妻一区二区三区| 爱福利视频一区| 天堂综合网久久| 欧美成人激情免费网| 色狠狠一区二区三区| 国产高清一级毛片在线不卡| 先锋影音av在线资源| 99精品久久免费看蜜臀剧情介绍| 中文久久乱码一区二区| 日韩精品亚洲专区在线观看| 亚洲国产尤物| 秋霞国产精品| 999精品国产| 麻豆网在线观看| 精品美女视频在线观看免费软件| 日韩精品国产精品| 国产精品xxx在线观看www| 国产午夜亚洲精品一级在线| 亚洲av毛片成人精品| 91原创国产| 成人免费在线观看视频网站| 亚洲高清免费视频| 日韩精品在在线一区二区中文| 波多野结衣电影免费观看| 激情av一区| 国产女主播在线播放| 欧美三级黄网| 美腿丝袜亚洲三区| 亚洲在线日韩| 女教师淫辱の教室蜜臀av软件| 国产黄色片免费观看| 欧美日韩国产亚洲一区| 伊人男人综合视频网| 无码视频一区二区三区| 可骚可骚的黄视频网站| 亚洲欧美国产va在线影院| 97视频在线免费| 国产欧美一区二区精品久导航| 亚洲精品婷婷| 99久久婷婷国产综合精品电影| 91免费观看网站| 久草手机在线观看| 欧美tickling网站挠脚心| 日韩av不卡播放| 99色在线播放| 香蕉久久aⅴ一区二区三区| 中文字幕在线一| 欧美国产激情18| 精品久久香蕉国产线看观看gif| 秋霞毛片大全| 精品毛片三在线观看| 在线一区二区视频| 日韩精品首页| www.爱久久.com| 色婷婷国产精品免| 自拍偷拍亚洲激情| 国内精品久久久久久中文字幕| 亚洲色图欧美激情| 精品国产一区二区三区av性色| 亚洲大尺度视频在线观看| 精品人妻中文无码av在线| 亚洲特色特黄| 国产福利视频一区二区| 日日日日影院| 亚洲女人被黑人巨大进入al| 国产日韩欧美一区二区三区| 欧美精品一区二区三区很污很色的| 欧美精品久久久久久久久老牛影院| 激情aⅴ欧美一区二区欲海潮| 一级做a爱片久久毛片| 精品一级少妇久久久久久久| 激情成人中文字幕| 99久久99久久久精品齐齐| 97免费视频在线播放| 欧美精品国产一区二区| www.色婷婷.com| 91麻豆精品国产91久久久使用方法| 欧美变态tickling挠脚心| 日韩国产激情在线| 精品人妻一区二区三区日产乱码| 日本美女一级片| 国产精品短视频| 中文字幕人成高视频| 久久人人爽人人爽| 超碰人人人人人人人| 欧美第一精品| 亚洲aⅴ天堂av在线电影软件| 伦一区二区三区中文字幕v亚洲| 欧美日韩国产在线观看网站| 欧美mv和日韩mv国产网站| 久久久亚洲精华液精华液精华液| 日韩理论片在线| 欧美激情网址| 国产精品粉嫩av| 日韩av电影免费在线观看| 在线亚洲不卡| 欧美视频免费在线| 在线观看国产精品日韩av| 色窝窝无码一区二区三区成人网站| 神马影院我不卡午夜| 伊人www22综合色| 国产三区二区一区久久| 日韩中文字幕在线观看视频| 国产精品suv一区二区69| 这里只有精品免费视频| 国产美女久久久| 久久久精品国产亚洲| 一区中文字幕在线观看| 国产欧美日韩不卡| 超碰免费公开在线| 免费高清视频在线观看| 欧美色女视频| 色偷偷偷在线视频播放| 久久亚洲电影天堂| 亚洲深夜激情| 精品一区二区在线免费观看| 无码毛片aaa在线| 日韩一区二区三区在线视频| 99re在线视频上| xxxxaaa欧美另类| 亚洲欧洲精品一区二区三区波多野1战4| 国产爆初菊在线观看免费视频网站| 国产第100页| 秋霞在线一区二区| 丁香一区二区三区| 日本免费中文字幕在线| 欧美精品v日韩精品v韩国精品v|