首頁  >  文章  >  後端開發  >  thinkPHP5框架資料庫連貫操作:cache()用法詳情

thinkPHP5框架資料庫連貫操作:cache()用法詳情

jacklove
jacklove原創
2018-05-22 17:34:231686瀏覽

本文實例講述了thinkPHP5框架資料庫連貫操作之cache()用法。分享給大家供大家參考,具體如下:

介紹

TP5中自備的快取系統,是File型快取。也就是文件型快取。儲存位址是:根目錄\..\runtime\cache(根目錄指public)。

這個快取系統相較於redis,memcached肯定有限制的,自動更新以及快取資料的複雜程度有差異。但是對於一些簡單的查詢等還有很有幫助的。例如文章等這些內容使用起來還是不錯的。

cache可以用於select、find、value和column方法,以及其衍生方法,使用cache方法後,在快取有效期之內不會再次進行資料庫查詢操作,而是直接取得快取中的數據,關於資料快取的類型和設定可以參考快取部分。

儲存cache

1.簡單的儲存

//查詢news表中id=10的新聞儲存於cache中,寫true預設讀取設定的中緩存時間,db():助手函數

db('news')->cache(true)->find(10);
 
//你也可以自定义时间,60秒表示
 
db('news')->cache(true,60)->find(10);

   

2. 指定快取標識   

//快取標識可以理解為鍵,就是當你想要去取出快取中的某一條資料的令牌,id=15的存進cache並且給定下標為key

db('news')->cache('key')->find(15);

 

//當你想要去取出id =15的這條數據時候

$data = \think\Cahce::get('key');

   

你可以在任何一個地方來讀取這條數據,此處類似於session()

3. cache方法支援設定快取標籤  

db('news')->cache('key',60,'tagName')->find(15);

   

更新cache

現在這麼看有一個問題,當你的專案運作了一段時間了豈不是會產生很多的快取文件,文件越來越多,每次請求去找cache文件的時候浪費的時間可能比直接查詢資料庫更慢。怎麼辦呢?

TP5有一個cache自動更新的方法。就是同資料有刪除或更新操作的時候會自動刪除掉舊的快取檔案。

/查詢id=328的存進cache

$list = db('news')->cache(true)->find(328);

//現在進行測試下,你手動去資料庫修改id=328的某個字段的值,然後再次進行第一次的查詢請求發現數據庫修改的字段沒變,這時候就是讀取的緩存,然後 

db('news')->update(['id'=>328,'title'=>'測試']);

//這時候你再要求會發現獲取的資料改變了,這時候不再是讀取的緩存,因為你做了更新操作,重新寫進緩存了,當然,以上說的這種情況前提是使用的主鍵查詢的

   本文實例講述了thinkPHP5框架資料庫連貫作業之cache()用法,更多相關內容請關注php中文網。

相關推薦:

PHP介面多重繼承和tarits實作多重繼承效果的方法教學詳情

PHP 如何取得某年第幾週的開始日期和結束日期教學

php字串反轉面試中常遇到的問題


以上是thinkPHP5框架資料庫連貫操作:cache()用法詳情的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn