<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 概述 ThinkPHP采用`think\Cache`類(實際使用`think\facade\Cache`類即可)提供緩存功能支持。 內置支持的緩存類型包括file、memcache、wincache、sqlite、redis。 > ThinkPHP的緩存類遵循`PSR-16`規范。 ## 設置 全局的緩存配置直接修改配置目錄下面的`cache.php`文件。 新版的緩存支持多通道,你可以事先定義好所有的緩存類型及配置參數,然后在使用的時候可以隨時切換。默認使用的是文件緩存類型,你可以添加`redis`緩存支持,例如: ~~~ return [ 'default' => 'file', 'stores' => [ // 文件緩存 'file' => [ // 驅動方式 'type' => 'file', // 設置不同的緩存保存目錄 'path' => '../runtime/file/', ], // redis緩存 'redis' => [ // 驅動方式 'type' => 'redis', // 服務器地址 'host' => '127.0.0.1', ], ], ]; ~~~ 緩存參數根據不同的緩存方式會有所區別,通用的緩存參數如下: |參數|描述| |---|---| |type |緩存類型| |expire |緩存有效期 (默認為0 表示永久緩存)| |prefix |緩存前綴(默認為空)| |serialize |緩存序列化和反序列化方法| >[danger] 如果是自定義驅動,`type`的值則為自定義驅動的類名(包含命名空間) ## 使用 ### 設置緩存 設置緩存有效期 ~~~ // 緩存在3600秒之后過期 Cache::set('name', $value, 3600); ~~~ 可以使用`DateTime`對象設置過期時間 ~~~ Cache::set('name', $value, new DateTime('2019-10-01 12:00:00')); ~~~ 如果設置成功返回true,否則返回false。 ### 緩存自增 針對數值類型的緩存數據,可以使用自增操作,例如: ~~~ Cache::set('name', 1); // name自增(步進值為1) Cache::inc('name'); // name自增(步進值為3) Cache::inc('name',3); ~~~ > 只能對數字或者浮點型數據進行自增和自減操作。 ### 緩存自減 針對數值類型的緩存數據,可以使用自減操作,例如: ~~~ // name自減(步進值為1) Cache::dec('name'); // name自減(步進值為3) Cache::dec('name',3); ~~~ ### 獲取緩存 獲取緩存數據可以使用: ~~~ Cache::get('name'); ~~~ 如果`name`值不存在,則默認返回 `null`。 支持指定默認值,例如: ~~~ Cache::get('name',''); ~~~ 表示如果`name`值不存在,則返回空字符串。 ### 追加一個緩存數據 如果緩存數據是一個數組,可以通過`push`方法追加一個數據。 ``` Cache::set('name', [1,2,3]); Cache::push('name', 4); Cache::get('name'); // [1,2,3,4] ``` ### 刪除緩存 ~~~ Cache::delete('name'); ~~~ ### 獲取并刪除緩存 ~~~ Cache::pull('name'); ~~~ 如果`name`值不存在,則返回`null`。 ### 清空緩存 ~~~ Cache::clear(); ~~~ ### 不存在則寫入緩存數據后返回 ~~~ Cache::remember('start_time', time()); ~~~ 如果start_time緩存數據不存在,則會設置緩存數據為當前時間。 第二個參數可以使用閉包方法獲取緩存數據,并支持依賴注入。 ~~~ Cache::remember('start_time', function(Request $request){ return $request->time(); }); ~~~ remember方法的第三個參數可以設置緩存的有效期。 ### 緩存標簽 支持給緩存數據打標簽,例如: ~~~ Cache::tag('tag')->set('name1','value1'); Cache::tag('tag')->set('name2','value2'); // 清除tag標簽的緩存數據 Cache::tag('tag')->clear(); ~~~ 緩存標簽不會改變緩存的讀取操作,所以獲取方式依然是: ``` Cache::get('name1'); ``` 并支持同時指定多個緩存標簽操作 ~~~ Cache::tag(['tag1', 'tag2'])->set('name1', 'value1'); Cache::tag(['tag1', 'tag2'])->set('name2', 'value2'); // 清除多個標簽的緩存數據 Cache::tag(['tag1','tag2'])->clear(); ~~~ 可以追加某個緩存標識到標簽 ``` Cache::tag('tag')->append('name3'); ``` 獲取標簽的緩存標識列表 ``` Cache::getTagItems('tag'); ``` ### 獲取緩存對象 可以獲取緩存對象,并且調用驅動類的高級方法,例如: ~~~ // 獲取緩存對象句柄 $handler = Cache::handler(); ~~~ ### 助手函數 系統對緩存操作提供了助手函數`cache`,用法如下: ~~~ // 設置緩存數據 cache('name', $value, 3600); // 獲取緩存數據 var_dump(cache('name')); // 刪除緩存數據 cache('name', NULL); // 返回緩存對象實例 $cache = cache(); ~~~ ## 跨應用緩存 在多應用模式下,默認文件緩存數據是區分不同應用的,如果你希望緩存跨應用,可以設置一個統一的數據緩存`path`目錄。 ## 切換緩存類型 沒有指定緩存類型的話,默認讀取的是`default`緩存配置,可以動態切換 ~~~ // 使用文件緩存 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'); ~~~ 如果要返回當前緩存類型對象的句柄,可以使用 ~~~ // 獲取Redis對象 進行額外方法調用 Cache::store('redis')->handler(); ~~~ ## 自定義驅動 如果需要自定義緩存驅動,需要繼承`think\cache\Driver`類,并且實現`think\contract\CacheHandlerInterface`接口。 ``` interface CacheHandlerInterface { /** * 判斷緩存 * @access public * @param string $name 緩存變量名 * @return bool */ public function has($name): bool; /** * 讀取緩存 * @access public * @param string $name 緩存變量名 * @param mixed $default 默認值 * @return mixed */ public function get($name, $default = false); /** * 寫入緩存 * @access public * @param string $name 緩存變量名 * @param mixed $value 存儲數據 * @param integer|\DateTime $expire 有效時間(秒) * @return bool */ public function set($name, $value, $expire = null): bool; /** * 自增緩存(針對數值緩存) * @access public * @param string $name 緩存變量名 * @param int $step 步長 * @return false|int */ public function inc(string $name, int $step = 1); /** * 自減緩存(針對數值緩存) * @access public * @param string $name 緩存變量名 * @param int $step 步長 * @return false|int */ public function dec(string $name, int $step = 1); /** * 刪除緩存 * @access public * @param string $name 緩存變量名 * @return bool */ public function delete($name): bool; /** * 清除緩存 * @access public * @return bool */ public function clear(): bool; } ``` 使用自定義驅動后,只需要配置緩存`type`的值為該驅動類名(包含命名空間)即可。
                  <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>

                              哎呀哎呀视频在线观看