# ThinkPHP函數詳解:S函數
在ThinkPHP中進行緩存操作,一般情況下并不需要直接操作緩存類,因為系統內置對緩存操作進行了封裝,直接采用S方法即可。
## 緩存初始化
~~~
S(array('type'=>'xcache','expire'=>60)); // 緩存初始化
~~~
常用的參數
| 參數 | 描述 |
| --- | --- |
| **expire** | 緩存有效期(時間為秒) |
| **prefix** | 緩存標識前綴 |
| **type** | 緩存類型 |
系統目前已經支持的緩存類型包括:`Apachenote`、`Apc`、`Db`、`Eaccelerator`、`File`、`Memcache`、`Redis`、`Shmop`、`Sqlite`、`Wincache`和`Xcache`。
如果S方法不傳入type參數初始化的話,則讀取配置文件中設置的`DATA_CACHE_TYPE`參數值作為默認類型。同樣的道理,prefix參數如果沒有傳入會讀取配置文件的`DATA_CACHE_PREFIX`參數值,expire參數沒有傳入則讀取`DATA_CACHE_TIME`配置值作為默認。
有些緩存方式會有一些自身特殊的參數,例如Memcache緩存,還需要配置其他的參數:
~~~
S(array(
'type'=>'memcache',
'host'=>'192.168.1.10',
'port'=>'11211',
'prefix'=>'think',
'expire'=>60)
);
~~~
對于全局的緩存方式,一般建議添加prefix(緩存前綴)參數用以區分不同的應用,以免混淆。
## 緩存設置
~~~
S('a',$value); // 設置緩存
~~~
會按照緩存初始化時候的參數進行緩存數據,也可以在緩存設置的時候改變參數,例如:
~~~
S('a',$value,300); // 緩存數據300秒
~~~
甚至改變之前的緩存方式或者更多的參數:
~~~
S('a',$value,array('type'=>'file','expire'=>300)); // 采用文件方式緩存數據300秒
~~~
如果你在緩存設置的時候采用上面的數組方式傳入參數的話,會影響到后面的緩存存取。
## 緩存讀取
~~~
$value = S('a'); // 讀取緩存
~~~
緩存讀取的是前面緩存設置的值,這個值會受緩存初始化或者緩存設置的時候傳入的參數影響。 如果緩存標識不存在或者已經過期,則返回false,否則返回緩存值。
## 緩存刪除
~~~
S('a',null); // 刪除緩存標識為name的緩存數據
~~~
## 對象方式操作緩存
可以采用對象方式操作緩存,例如:
~~~
$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600)); // 初始化緩存
$cache->name = 'value'; // 設置緩存
$value = $cache->name; // 獲取緩存
unset($cache->name); // 刪除緩存
~~~
>[info] 如果你設置了緩存前綴的話,對應的緩存操作只是對應該緩存前綴標識的,不會影響其他的緩存。
## 緩存隊列
數據緩存可以支持緩存隊列,簡單的說就是可以限制緩存的數量,只需要在初始化的時候指定length參數:
~~~
S(array('type'=>'xcache','length'=>100,'expire'=>60));
~~~
設置了length參數后,系統只會緩存最近的100條緩存數據。
- 開始
- PHP配置參數的介紹
- PHP代碼優化
- php中的命名空間
- PHP文件上傳類
- PHP文件下載
- PHP驗證碼
- ThinkPHP3.2 框架函數
- A函數:實例化控制器
- C函數:設置和獲取配置參數
- D函數:實例化模型
- F 函數:快速緩存設置和存取
- M函數:例化模型(無需定義模型類)
- L函數:設置和獲取語言變量
- S 函數:緩存設置和存取
- R函數:直接調用控制器的操作方法
- U函數:URL地址生成
- I 函數:安全獲取系統輸入變量
- 日志
- ThinkPHP在關閉調試模式導致函數被緩存
- MySQL觸發器使用時遇到的坑
- PHP常用函數
- 五一回家記錄
- window的PHP開發(wamp)下安裝redis擴展
- Windows下安裝使用Redis
- PHP7新特性
- 利用 phpmailer 類實現隊列發送郵件
- GD 庫圖像處理
- 檢測 PHP 模塊是否開啟
- GD 庫操作一般步驟
- GD 庫繪畫改變字體
- GD 繪制驗證碼
- GD 縮略圖實現
- GD 繪制水印
- 日期時間函數庫
- PHP 函數
- 無限極分類