CakePHP est un framework PHP populaire avec un système complet de gestion de cache qui peut améliorer les performances des applications. Mais comment effacer les données mises en cache une fois qu’elles expirent ou doivent être mises à jour ? Cet article détaillera comment utiliser la suppression du cache dans CakePHP.
CakePHP gère le cache via la clé de cache. Pour effacer une seule donnée mise en cache, transmettez simplement la clé de cache correspondante à la méthode de suppression du moteur de cache.
Par exemple, pour vider le cache nommé "user_list", vous pouvez utiliser le code suivant :
$this->cache->delete('user_list');
Ce code supprimera les données de cache individuelles du moteur de cache. Il convient de noter que si plusieurs moteurs de cache sont utilisés, la même clé de cache doit être transmise à tous les moteurs de cache afin de supprimer toutes les données du cache.
Parfois, vous devez effacer plusieurs données du cache, vous pouvez utiliser la suppression par lots. CakePHP fournit la méthode clear pour effacer toutes les données du cache pour un préfixe de cache spécifié.
Par exemple, supposons que vous disposiez des deux caches suivants :
$this->cache->write('user_list', $userList); $this->cache->write('post_list', $postList);
Leurs clés de cache sont "user_list" et "post_list". Pour supprimer les deux caches en même temps, vous pouvez utiliser le code suivant :
$this->cache->clear('user_');
Ce code supprimera toutes les données du cache préfixées par "user_" de tous les moteurs de cache. De cette manière, plusieurs données mises en cache peuvent être effacées par lots.
Dans CakePHP, vous pouvez également définir le délai d'expiration du cache ou les dépendances du cache. CakePHP effacera automatiquement les données du cache lorsque le délai d'expiration atteint ou que les dépendances changent.
Par exemple, le code suivant mettra en cache $userList pendant 60 secondes et videra automatiquement le cache lorsqu'un enregistrement de la table Users est modifié :
$this->cache->write('user_list', $userList, 'default', '+60 seconds', $this->Users);
Dans le code ci-dessus, "+60 secondes" signifie que la durée du cache est de 60 secondes. , "$ this->Users" indique que la dépendance du cache est la table Users. À ce moment-là, lorsqu'un enregistrement de la table Users change, CakePHP effacera automatiquement le cache "user_list".
Parfois, les données du cache doivent être mises à jour à partir de la base de données dans un intervalle spécifique. Vous pouvez forcer manuellement l'actualisation du cache en utilisant la méthode suivante :
// 获取缓存 $userList = $this->cache->read('user_list'); // 如果缓存不存在或已过期,重新获取数据并更新缓存 if (!$userList) { $userList = $this->User->findAll(); $this->cache->write('user_list', $userList); }
Ce code récupérera d'abord les données du cache si le cache n'existe pas ou a expiré, il récupérera la liste des utilisateurs de la base de données et la stockera. dans la cache. De cette façon, vous pouvez actualiser le cache manuellement.
Enfin, si vous devez effacer toutes les données mises en cache, vous pouvez utiliser le code suivant :
$this->cache->clear(true);
Ce code effacera toutes les données mises en cache et n'effacera pas la configuration du cache. Il est à noter que seul l'administrateur du moteur de cache a le pouvoir d'exécuter ce code, et généralement il ne sera pas utilisé dans les applications.
Résumé
Dans CakePHP, la suppression du cache est une partie très importante, qui peut améliorer les performances et la stabilité de l'application. Cet article présente plusieurs méthodes courantes de suppression du cache, notamment la suppression d'un seul cache, la suppression des caches par lots, la suppression automatique des caches, l'actualisation manuelle des caches et la suppression de toutes les données du cache. Utilisez ces méthodes pour gérer et exploiter efficacement les données du cache afin que les applications restent efficaces, sécurisées et stables.
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!