Heim > Artikel > Backend-Entwicklung > ThinkPHP-Cache, schneller Cache und dynamischer Cache
Die F-Methode von thinkPHP kann nur zum Zwischenspeichern einfacher Datentypen verwendet werden und unterstützt keine Gültigkeitszeiträume und zwischengespeicherten Objekte. Die S()-Cache-Methode unterstützt den Gültigkeitszeitraum, auch bekannt als dynamische Cache-Methode. Dieser Artikel ist die tägliche Zusammenstellung der Thinkphp-Caching-Methoden. Freunde, die sich für Thinkphp-Caching-Methoden interessieren, sollten gemeinsam lernen.
Die Standard-Caching-Methode des Systems ist Datei-Caching. Wir können andere Caches in der Projektkonfigurationsdatei definieren . Methode, ändern Sie beispielsweise die Standard-Caching-Methode in Xcache (natürlich muss Ihre Umgebung Xcache unterstützen)
Für das Problem einer großen Anzahl von Dateien im Cache-Verzeichnis unter Dateimodus-Caching Viele zwischengespeicherte Daten, ThinkPHP bietet auch eine Lösung, um das Zwischenspeichern von Hash-Unterverzeichnissen zu ermöglichen.
'DATA_CACHE_SUBDIR'=>true
Sie können auch die Ebene des Hash-Verzeichnisses festlegen. Beispielsweise kann
'DATA_PATH_LEVEL'=>2
automatisch mehrstufige Unterverzeichnisse für das Caching erstellen, basierend auf dem Hash der Cache-ID.
Die S-Methode unterstützt den Cache-Gültigkeitszeitraum. In vielen Fällen benötigen wir das Konzept des Gültigkeitszeitraums möglicherweise nicht, oder die Verwendung des Dateimodus-Cachings kann die Anforderungen erfüllen, sodass das System auch einen schnellen Cache speziell für den Dateimodus bereitstellt . Cache-Methode F-Methode. Die F-Methode kann nur zum Zwischenspeichern einfacher Datentypen verwendet werden und unterstützt keine Gültigkeitszeiträume und zwischengespeicherten Objekte. Verwenden Sie Folgendes:
//快速缓存Data数据,默认保存在DATA_PATH目录下面 F('data',$data); //快速缓存Data数据,保存到指定的目录 F('data',$data,TEMP_PATH); F('user/data',$data); //删除缓存数据 F('data',null); //获取缓存数据 $data=F('data');
Konfigurationsdatei config.php
//动态缓存,缓存文件存在于\Runtime\Temp 'DATA_CACHE_TYPE'=>'file', 'DATA_CACHE_TIME'=>'3600', //'DATA_CACHE_SUBDIR'=>true,//开启子目录 //'DATA_CACHE_LEVEL'=>3,//设置子目录的层次
Aktion Datei:
function view(){ //缓存 //$cache=Cache::getInstance('缓存方式','缓存参数'); //$cache=Cache::getInstance('Xcache',array('expire'=>60)); //$cache->set('名字','值');或者$cache->name='值'; //$value=$cache->get('名字');或者$value=$cache->name; //$cache->rm('名字');或者unset($cache->name); //S('名字','数据','3600','类型')缓存快捷方法 $user=M('haodetong'); $value=S('list'); if(empty($value)){ $list=$user->select(); S('list',$list,3600); echo '这个是直接从数据库中读取的文件'; dump($list); }else{ echo '这个是缓存文件'; dump($value); } }
Beim ersten Besuch wird folgendes Bild angezeigt:
Nach dem erneuten Aktualisieren wird folgendes Bild angezeigt:
Das Folgende ist eine separate Einführung in den schnellen Cache der F-Methode in ThinkPHP
Die Verwendung des Dateimodus-Caching kann erfüllt werden Daher stellt das System auch einen schnellen Cache für den Dateimodus bereit. Cache-Methode F-Methode
$path="../Public/Runtime/"; $str="asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa"; F("str/andy",$str,$path);
Auf diese Weise wird der Inhalt der Zeichenfolge $str in der Datei ../Public/Runtime abgelegt /str/andy.php und die Datei von
andy.php Der Inhalt ist wie folgt:
<?php return 'asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa'; ?>
Der folgende Codeabschnitt ist eine Übersicht über die ThinkPHP-Caching-Methode S()
thinkPHPs F-Methode kann nur zum Zwischenspeichern einfacher Daten verwendet werden. Typ, Ablauf und Cache-Objekte werden nicht unterstützt. Die S()-Cache-Methode unterstützt den Gültigkeitszeitraum, auch bekannt als dynamische Cache-Methode. Das Verwendungsbeispiel lautet wie folgt:
Der Code lautet wie folgt:
// 使用data标识缓存$Data数据 S('data',$Data); //前面的是缓存标示,后面的是缓存的数据
Der Code lautet wie folgt:
// 缓存$Data数据3600秒 S('data',$Data,3600);
Der Code lautet wie folgt:
// 删除缓存数据 S('data',NULL); //第一个参数时缓存的标识名
Der Code lautet wie folgt:
$cache=S($cachename);//设置缓存标示 // 判断是否有这个查询缓存 if(!$cache){ //$cache 中是缓存的标示(每个查询都对应一个缓存 即 不同的查询有不同的缓存) $cache=$video->where($map)->order($order)->limit($limit)->select(); foreach($cache as $key=>$value){ $userlist=$user->where("id=".$value['user_id'])->find(); $cache[$key]["nickname"]=$userlist['nickname']; } S($cachename,$cache,3600); //设置缓存的生存时间 } S($cachename,NULL); //删除缓存
Das Obige ist der gesamte Inhalt dieses Artikels Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!
Verwandte Empfehlungen:
Analyse zur ThinkPHP-Implementierung von statischem Caching und dynamischem Caching
Das obige ist der detaillierte Inhalt vonThinkPHP-Cache, schneller Cache und dynamischer Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!