當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 文件管理 » thinkphp緩存時間

thinkphp緩存時間-九游会j9娱乐平台

發布時間: 2024-07-01 16:12:09

1. thinkphp 數據緩存是否校驗緩存是什麼意思

在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('name',$value);

會按照緩存初始化時候的參數進行緩存數據,也可以在緩存設置的時候改變參數,例如:

// 緩存數據300秒

s('name',$value,300);

甚至改變之前的緩存方式或者更多的參數:

// 採用文件方式緩存數據300秒

s('name',$value,array('type'=>'file','expire'=>300));

如果你在緩存設置的時候採用上面的數組方式傳入參數的話,會影響到後面的緩存存取。

緩存讀取

// 讀取緩存

$value = s('name');

緩存讀取的是前面緩存設置的值,這個值會受緩存初始化或者緩存設置的時候傳入的參數影響。 如果緩存標識不存在或者已經過期,則返回false,否則返回緩存值。

  • 緩存刪除

// 刪除緩存

s('name',null);

刪除緩存標識為name的緩存數據。

對象方式操作緩存

我們可以採用對象方式操作緩存,例如:

// 初始化緩存

$cache = s(array('type'=>'xcache','prefix'=>'think','expire'=>600));

$cache->name = 'value'; // 設置緩存

$value = $cache->name; // 獲取緩存

unset($cache->name); // 刪除緩存

如果你設置了緩存前綴的話,對應的緩存操作只是對應該緩存前綴標識的,不會影響其他的緩存。

關於文件緩存方式的安全機制

如果你使用的是文件方式的緩存機制,那麼可以設置data_cache_key參數,避免緩存文件名被猜測到,例如:

'data_cache_key'=>'think'

  • 緩存隊列

數據緩存可以支持緩存隊列,簡單的說就是可以限制緩存的數量,只需要在初始化的時候指定length參數:

s(array('type'=>'xcache','length'=>100,'expire'=>60));

設置了length參數後,系統只會緩存最近的100條緩存數據。

2. thinkphp 如果使用內存緩存

例如這個:

$config_array = f ( $this->lang . 'config' );//f方法是tp中快速緩存方法;$this->lang.'config'是指定了這個緩存文件的名稱;$this->lang是當前網站的語言類型

$config_array ['dianzan'] = intval ( $_post ['dianzan'] );

f ( $this->lang . 'config', $config_array );

$this->success ( '保存成功' );


3. thinkphp3.0版本的靜態緩存該如何配置

'html_cache_on' => true, // 開啟靜態緩存'html_cache_time' => 60, // 全局靜態緩存有效期(秒)'html_file_suffix' => '.shtml', // 設置靜態緩存文件後綴'html_cache_rules' => array( // 定義靜態緩存規則 // 定義格式1 數組方式 '靜態地址' => array('靜態規則', '有效期', '附加規則'), // 定義格式2 字元串方式 '靜態地址' => '靜態規則', )

手冊上是這樣配的,你是不是寫的作用於不對,要在config文件夾中配置。

4. thinkphp 如何實現清除緩存

thinkphp後台執行的代碼:
//獲取要清楚的目錄和目錄所在的絕對路徑
public function cache(){
////前台用ajax get方式進行提交的,這里是先判斷一下
if($_post['type']){
//得到傳遞過來的值
$type=$_post['type'];
//將傳遞過來的值進行切割,我是用「-」進行切割的
$name=explode('-', $type);
//得到切割的條數,便於下面循環
$count=count($name);
//循環調用上面的方法
for ($i=0;$i<$count;$i ){
//得到文件的絕對路徑
$abs_dir=dirname(dirname(dirname(dirname(__file__))));
//組合路徑
$pa=$abs_dir.'indexruntime';
$runtime=$abs_dir.'indexruntime~runtime.php';
if(file_exists($runtime))//判斷 文件是否存在
{
unlink($runtime);//進行文件刪除
}
//調用刪除文件夾下所有文件的方法
$this->rmfile($pa,$name[$i]);
}
//給出提示信息
$this->ajaxreturn(1,'清除成功',1);
}else{
$this->display();
}
}
public function rmfile($path,$filename){//刪除執行的方法
//去除空格
$path = preg_replace('/(/){2,}|{}{1,}/','/',$path);
//得到完整目錄
$path.= $filename;
//判斷此文件是否為一個文件目錄
if(is_dir($path)){
//打開文件
if ($dh = opendir($path)){
//遍歷文件目錄名稱
while (($file = readdir($dh)) != false){
//逐一進行刪除
unlink($path.''.$file);
}
//關閉文件
closedir($dh);
}
}
}
前台頁面部分代碼如下:

5. php thinkphp3.2設置緩存與使用緩存的問題

我先聲明本人沒有使用過thinkphp3.2。對thinkphp邏輯不是很懂

緩存的作用是減輕資料庫壓力和加快數據讀取速度。

首先,第一次進頁面緩存中肯定沒有數據,進入頁面後先判斷緩存中是否有數據,若有:則從緩存中獲取數據,若無:從資料庫獲取數據,並寫入緩存。第二次進來判斷的時候,緩存中就有數據了,直接從緩存中返回數據,不進行資料庫操作。

代碼:

functionindex(){
if(cache('user_list')){//緩存中有數據
$data=cache('user_list');
}else{//緩存中沒有數據
$data=db('user')->select();//資料庫查詢
cache('user_list',$data,3600);//存入緩存
}
$this->assign('data',$data);
return$this->display();
}
熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图