Maison  >  Article  >  développement back-end  >  Fonctionnement cohérent de la base de données du framework thinkPHP5 : détails d'utilisation de cache()

Fonctionnement cohérent de la base de données du framework thinkPHP5 : détails d'utilisation de cache()

jacklove
jackloveoriginal
2018-05-22 17:34:231637parcourir

L'exemple de cet article décrit l'utilisation de cache() pour un fonctionnement cohérent de la base de données du framework thinkPHP5. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Introduction

Le système de cache fourni avec TP5 est un cache de type fichier. C'est-à-dire le cache de fichiers. L'adresse de stockage est : répertoire racine..runtimecache (le répertoire racine fait référence à public).

Par rapport à Redis, ce système de cache a définitivement des limites dans Memcached, et la complexité des mises à jour automatiques et des données mises en cache est différente. Mais c'est très utile pour certaines requêtes simples. Par exemple, les articles et autres contenus sont bons à utiliser.

le cache peut être utilisé pour les méthodes select, find, value et column, ainsi que leurs méthodes dérivées. Après avoir utilisé la méthode cache, l'opération de requête de base de données ne sera pas effectuée à nouveau pendant la période de validité du cache, mais le cache. les données dans le cache seront obtenues directement, veuillez vous référer à la section mise en cache pour les types et paramètres de mise en cache des données.

Cache de stockage

1. Stockage simple

//Interrogez les news avec id=10 dans la table news et stockez-les dans le cache, écrivez true pour lire la configuration. cache par défaut. Time, db() : Fonction d'assistance

db('news')->cache(true)->find(10);
 
//你也可以自定义时间,60秒表示
 
db('news')->cache(true,60)->find(10);

2. Spécifier l'ID du cache

//L'ID du cache peut être compris comme une clé, c'est-à-dire que lorsque vous souhaitez récupérer le jeton d'une certaine donnée dans le cache, l'id=15 est stocké dans le cache et l'indice donné est key

db('news')->cache('key')->find(15);

//Quand tu veux Quand tu veux récupérer les données avec l'id=15

$data = \think\Cahce::get('key');

Vous pouvez lire ces données n'importe où, elles est similaire à session ()

3. La méthode de cache prend en charge la définition des balises de cache

db('news')->cache('key',60,'tagName')->find(15);

Mettre à jour le cache

Maintenant, il y en a un. Le problème est que lorsque votre projet est en cours d'exécution depuis un certain temps, il générera de nombreux fichiers de cache. Il peut y avoir de plus en plus de fichiers perdus à chercher des fichiers de cache à chaque fois que vous le demandez. plus lent que d’interroger directement la base de données. Que devons-nous faire ?

TP5 dispose d'une méthode de mise à jour automatique du cache. Autrement dit, lorsque les mêmes données sont supprimées ou mises à jour, l'ancien fichier cache sera automatiquement supprimé.

/Interrogez le cache avec id=328

$list = db('news')->cache(true)->find(328);

//Maintenant, pour les tests, vous accédez manuellement à la base de données pour modifier la valeur d'un champ avec l'identifiant = 328, puis effectuez à nouveau la première demande de requête et constatez que le champ modifié dans la base de données n'a pas changé pour le moment. est le cache de la lecture, puis

db('news')->update(['id'=>328,'title'=>'Test']);

//À ce moment-là, vous demandez à nouveau. Vous constaterez que les données obtenues ont changé et qu'elles ne sont plus dans le cache pour la lecture, car vous avez effectué une opération de mise à jour et les avez réécrites dans le cache. , la prémisse de la situation mentionnée ci-dessus est que la requête de clé primaire est utilisée

L'exemple de cet article décrit l'utilisation de cache() pour un fonctionnement cohérent de la base de données du framework thinkPHP5. Pour plus de contenu connexe, veuillez payer. attention au site PHP chinois.

Recommandations associées :

Comment obtenir l'héritage et les tarits multiples de l'interface PHP pour obtenir des détails du didacticiel à effet d'héritage multiple

PHP Tutoriel sur la date de début et la date de fin de la semaine d'une certaine année

Questions fréquemment rencontrées dans les entretiens d'inversion de chaîne PHP


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn