Maison > Article > développement back-end > Méthode ThinkPHP d'implémentation de la mise en cache statique et de la mise en cache dynamique
Cet article présente principalement l'exemple de code de ThinkPHP pour implémenter la mise en cache statique et la mise en cache dynamique, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Mise en cache statique
Pour utiliser la fonction de mise en cache statique, vous devez activer le paramètre HTML_CACHE_ON et définir le fichier de règles de mise en cache statique à l'aide du paramètre de configuration HTML_CACHE_RULES.Définir des règles statiques
'HTML_CACHE_ON' => true, // 开启静态缓存 'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒) 'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀 'HTML_CACHE_RULES' => array( // 定义静态缓存规则 // 定义格式1 数组方式 '静态地址' => array('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' => '静态规则', )
Adresse statique
Règles statiques de fonctionnement global'read'=>array('{id}',60)//定义所有的read操作的静态规则
'user:'=>array('User/{:action}_{id}','600')//定义所有的User控制器的静态规则
'blog:read'=>array('{id}',0)//参数为0表示永久缓存
'*'=>array('{$_SERVER.REQUEST_URI|md5}')//这个属于特殊情况下的使用,任何模块的操作都适用
Règles statiques
Les règles statiques sont utilisées pour définir le nom de le fichier statique à générer. La définition des règles statiques doit garantir qu'il n'y aura pas de conflits.{$_×××|function}//_GET、_REQUEST、_SERVER、_SESSION、_COOKIE {$_GET.name} {$_SERVER.REQUEST_URI|md5}
Copier le code Le code est le suivant :
{:module}/{:controller}_{:action}//{:module}, {: contrôleur} et {:action} représentent respectivement le nom du module actuel, le nom du contrôleur et le nom de l'opération.
{var|function}//{id}其实等效于 {$_GET.id}
{|function}//{|time},time函数获取时间后作为文件名称
'{id},{name|md5}' //在{}之外的字符作为字符串对待,如果包含有"/",会自动创建目录。 {:module}/{:action}_{id}//会在静态目录下面创建模块名称的子目录,然后写入操作名_id.shtml 文件。
Cache dynamique
[Cache de données de la méthode S]Initialisation du cache
S(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); }
[Cache rapide]
Le système fournit également une méthode de cache rapide F pour des opérations plus rapides. Cependant, la méthode F n'a pas de période de validité. La méthode F peut prendre en charge différents types de stockage. S'il s'agit d'un type de fichier, il est enregistré par défaut dans le répertoire DATA_PATH. .F('data',$Data); F('data',$Data,TEMP_PATH);//快速缓存Data数据,保存到指定的目录 F('User/data',$Data);//F方法支持自动创建缓存子目录,在DATA_PATH目录下面缓存data数据,如果User子目录不存在,则自动创建。
$Data = F('data');
F('data',NULL);
[Cache de requêtes]
La fonction de cache de requêtes prend en charge toutes les bases de données et prend en charge toutes les méthodes de mise en cache et toutes les périodes de validité.$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();
Cet article provient principalement de la documentation officielle. Si vous avez des questions, veuillez vous référer à la documentation officielle de ThinkPHP3.2 - Cache
Ce qui précède est l'intégralité du contenu de cet article, j'espère. cela sera utile à l’étude de chacun.
Recommandations associées :
Résumé des méthodes courantes de saut de page dans les compétences PHP_javascript
PHP Comment partager Session_node.js avec des applications développées avec NodeJs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!