本文主要介紹了thinkPHP5框架資料庫連貫操作之cache()用法,結合實例形式分析了thinkPHP5中快取cache的應用場景及連貫操作中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中文網其他相關文章!