Heim > Artikel > Backend-Entwicklung > ThinkPHPs Methode zur Implementierung von statischem Caching und dynamischem Caching
In diesem Artikel wird hauptsächlich der Beispielcode von ThinkPHP zur Implementierung von statischem Caching und dynamischem Caching vorgestellt, der einen bestimmten Referenzwert hat. Interessierte Freunde können sich auf
Statisches Caching
Um die statische Caching-Funktion zu verwenden, müssen Sie den Parameter HTML_CACHE_ON aktivieren und die statische Caching-Regeldatei mithilfe des Konfigurationsparameters HTML_CACHE_RULES festlegen.Statische Regeln definieren
'HTML_CACHE_ON' => true, // 开启静态缓存 'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀 'HTML_CACHE_RULES' => array( // 定义静态缓存规则 // 定义格式1 数组方式 '静态地址' => array('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' => '静态规则', )
Statische Adresse
Statische Regeln für den globalen Betrieb'read'=>array('{id}',60)//定义所有的read操作的静态规则
'user:'=>array('User/{:action}_{id}','600')//定义所有的User控制器的静态规则
'blog:read'=>array('{id}',0)//参数为0表示永久缓存
'*'=>array('{$_SERVER.REQUEST_URI|md5}')//这个属于特殊情况下的使用,任何模块的操作都适用
Statische Regeln
Statische Regeln werden verwendet, um statische Dateien zu definieren, die generiert werden sollen. Der Name der Es muss eine statische Regel definiert werden, um sicherzustellen, dass es keinen Konflikt gibt.{$_×××|function}//_GET、_REQUEST、_SERVER、_SESSION、_COOKIE {$_GET.name} {$_SERVER.REQUEST_URI|md5}
Code kopieren Der Code lautet wie folgt:
{:module}/{:controller}_{:action}//{:module}, {: controller} und {:action} repräsentieren den aktuellen Modulnamen, den Controllernamen bzw. den Operationsnamen.
{var|function}//{id}其实等效于 {$_GET.id}
{|function}//{|time},time函数获取时间后作为文件名称
'{id},{name|md5}' //在{}之外的字符作为字符串对待,如果包含有"/",会自动创建目录。 {:module}/{:action}_{id}//会在静态目录下面创建模块名称的子目录,然后写入操作名_id.shtml 文件。
Dynamischer Cache
[S-Methoden-Datencache]Cache-InitialisierungS(array('type'=>'xcache','expire'=>60));
S('name',$value); S('name',$value,300);//缓存数据300秒 S('name',$value,array('type'=>'file','expire'=>300));//改变之前的缓存方式或者更多的参数 S(array('type'=>'xcache','length'=>100,'expire'=>60));//系统只会缓存最近的100条缓存数据。
$value = S('name');//如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值。
S('name',null);
$user = M('User'); $value = S('list'); if (empty($value)) { $list = $user->select(); S('list', $list, 3600); echo '这个是直接从数据库中读取的文件'; dump($list); } else { echo '这个是缓存文件'; dump($value); }
[Schneller Cache]
Das System bietet auch eine schnelle Cache-Methode F für schnellere Vorgänge. Methode F kann jedoch verschiedene Speichertypen unterstützen, sie wird standardmäßig im Verzeichnis DATA_PATH gespeichert.F('data',$Data); F('data',$Data,TEMP_PATH);//快速缓存Data数据,保存到指定的目录 F('User/data',$Data);//F方法支持自动创建缓存子目录,在DATA_PATH目录下面缓存data数据,如果User子目录不存在,则自动创建。
$Data = F('data');
F('data',NULL);
[Abfrage-Cache]
Die Abfrage-Cache-Funktion unterstützt alle Datenbanken und unterstützt alle Caching-Methoden und Gültigkeitszeiträume.$Model->cache(true)->where('status=1')->select();
$Model->cache('cache_name')->select();
$Model->cache(true,60,'xcache')->select();
$value = S('cache_name');
$Model->where($map)->cache('key',60)->find();
Dieser Artikel stammt hauptsächlich aus der offiziellen Dokumentation. Wenn Sie Fragen haben, lesen Sie bitte die offizielle Dokumentation von ThinkPHP3.2 – Cache
Das Obige ist hoffentlich der gesamte Inhalt Es wird für das Lernen aller hilfreich sein.
Verwandte Empfehlungen:
Zusammenfassung gängiger Seitensprungmethoden in PHP_Javascript-Kenntnissen
PHP So teilen Sie Session_node.js mit Anwendungen, die mit NodeJs entwickelt wurden
Das obige ist der detaillierte Inhalt vonThinkPHPs Methode zur Implementierung von statischem Caching und dynamischem Caching. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!