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

jacklove
發布: 2023-04-02 08:32:02
原創
2012 人瀏覽過

這篇文章主要介紹了thinkPHP5框架資料庫連貫操作之cache()用法,結合實例形式分析了thinkPHP5中快取cache的應用場景及連貫操作中cache的設定、更新、刪除等操作技巧,需要的朋友可以參考下

本文實例講述了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'=>'测试']);
//这时候你再次请求会发现获取的数据改变了 ,这时候不再是读取的缓存,因为你做了更新操作,重新写进缓存了,当然,以上说的这种情况前提是使用的主键查询的
登入後複製

您可能感興趣的文章:

thinkPHP3.2實作分頁自訂樣式的方法講解

Laravel框架Blob實作的多圖上傳功能範例解

Swoole 1.10. 0新版本發布,增加了多個新特性解析

#

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!