本文實例講述了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實作多重繼承效果的方法教學詳情
以上是thinkPHP5框架資料庫連貫操作:cache()用法詳情的詳細內容。更多資訊請關注PHP中文網其他相關文章!