<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Cache 介紹 >[info] 緩存應用包括有哪特別的 1. 關閉當前頁面的請求緩存`json($data)->code(201)->allowCache(false);` 2. 數據庫操作返回數據 3. 生成配置緩存`optimize:config` `php think optimize:config index` 4. 字段緩存 `php think optimize:schema` [官網文檔](http://www.hmoore.net/manual/thinkphp5_1/354145) 5. 路由緩存 [文檔](http://www.hmoore.net/manual/thinkphp5_1/626033) 6. ##. [/think/facade/Cache常用方法介紹](http://www.hmoore.net/manual/thinkphp5_1/354116) 1. 獲取并刪除緩存 `Cache::pull('name');` 2. 刪除緩存`Cache::rm('name');` 3. 清空緩存`Cache::clear()` 4. 不存在則寫入緩存數據后返回 ~~~ Cache::remember('name',function(){ return time(); }); ~~~ 5.獲取緩存對象 ~~~ $cache = Cache::init(); // 獲取緩存對象句柄 $handler = $cache->handler(); ~~~ 6.助手函數 ~~~ $options = [ // 緩存類型為File 'type' => 'File', // 緩存有效期為永久有效 'expire' => 0, // 指定緩存目錄 'path' => APP_PATH . 'runtime/cache/', ]; // 緩存初始化 // 不進行緩存初始化的話,默認使用配置文件中的緩存配置 cache($options); // 設置緩存數據 cache('name', $value, 3600); // 獲取緩存數據 var_dump(cache('name')); // 刪除緩存數據 cache('name', NULL); ~~~ ### 緩存標簽 ~~~ Cache::tag('tag')->set('name1','value1'); Cache::tag('tag')->set('name2','value2'); // 或者批量設置緩存標簽 Cache::set('name1','value1'); Cache::set('name2','value2'); Cache::tag('tag',['name1','name2']); // 清除tag標簽的緩存數據 Cache::clear('tag'); ~~~ ### 同時使用多個緩存類型 ~~~ $options = [ // 緩存類型為File 'type' => 'File', // 緩存有效期為永久有效 'expire'=> 0, //緩存前綴 'prefix'=> 'think', // 指定緩存目錄 'path' => '../runtime/cache/', ]; Cache::connect($options)->set('name','value',3600); Cache::connect($options)->get('name'); ~~~ ~~~ // 使用文件緩存 Cache::set('name','value',3600); Cache::get('name'); // 使用Redis緩存 Cache::store('redis')->set('name','value',3600); Cache::store('redis')->get('name'); // 切換到文件緩存 Cache::store('default')->set('name','value',3600); Cache::store('default')->get('name'); ~~~ ##. [cache文檔](hhttp://www.hmoore.net/manual/thinkphp5_1/354019) >[info] `cache`方法用于查詢緩存操作,也是連貫操作方法之一 **cache**可以用于`select`、`find`、`value`和`column`方法,以及其衍生方法,使用`cache`方法后,在緩存有效期之內不會再次進行數據庫查詢操作,而是直接獲取緩存中的數據,關于數據緩存的類型和設置可以參考緩存部分。 ~~~ Db::table('think_user')->where('id',5)->cache(true)->find(); Db::table('think_user')->cache(true,60)->find(); // 或者使用下面的方式 是等效的 Db::table('think_user')->cache(60)->find(); ~~~ 應用key 及 tab標簽 ~~~ $result = Db::table('think_user')->cache('key',60)->find(); $data = \think\Cache::get('key'); Db::table('think_user')->cache('key',60,'tagName')->find(); ~~~ ### 緩存自動更新 >[danger] 疑問:如果是通過column獲取一個數據并緩存,添加,刪除,變更會也自動識別更新緩存呢? 還是需要自已寫判斷代碼,重要緩存; ***之前一直用event還處理這個問題*** 當你刪除或者更新數據的時候,可以調用相同`key`的`cache`方法,會自動更新(清除)緩存,例如: ~~~ Db::table('think_user')->cache('user_data')->select([1,3,5]); Db::table('think_user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']); Db::table('think_user')->cache('user_data')->select([1,5]); ~~~ 注意: 最后查詢的數據不會受第一條查詢緩存的影響,確保查詢和更新或者刪除使用相同的緩存標識才能自動清除緩存。 如果使用`find`方法并且使用主鍵查詢的情況,不需要指定緩存標識,會自動清理緩存,例如: ~~~ Db::table('think_user')->cache(true)->find(1); Db::table('think_user')->update(['id'=>1,'name'=>'thinkphp']); Db::table('think_user')->cache(true)->find(1); ~~~ # 命令行清除緩存文件 ~~~ php think clear ~~~ ~~~ php think clear --path d:\www\tp5\runtime\log\ ~~~ 清除日志目錄 ~~~ php think clear --log ~~~ 清除日志目錄并刪除空目錄 ~~~ php think clear --log --dir ~~~ 清除數據緩存目錄 ~~~ php think clear --cache ~~~ ~~~ php think clear --route ~~~ # 緩存應用集合 ## 參數 ## 模型中應用 ## 緩存應用
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看