cache (opération de chaîne 15)


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 les données contenues dans le cache. le cache sera obtenu directement. À propos des données Les types et paramètres de cache peuvent être trouvés dans la section cache.

Ce qui suit est un exemple. Par exemple, nous utilisons la méthode cache pour la méthode find comme suit :

Db::table('user')->where('id',5)->cache(true)->find();

Le premier résultat de la requête sera mis en cache lorsque les mêmes données sont interrogées pour la deuxième fois, le contenu du cache. sera renvoyé directement sans effectuer à nouveau l'opération de requête de base de données.

Par défaut, la période de validité du cache est déterminée par les paramètres de configuration du cache par défaut, mais la méthode de cache peut être spécifiée séparément, par exemple :

Db::table('user')->cache(true,60)->find();
// 或者使用下面的方式 是等效的
Db::table('user')->cache(60)->find();

signifie que la période de validité du cache des résultats de la requête est de 60 secondes. La méthode

cache peut spécifier l'identifiant du cache :

Db::table('user')->cache('key',60)->find();

Spécifier l'identifiant du cache de requêtes peut rendre le cache de requêtes plus efficace.

De cette façon, les données du cache de requête peuvent être obtenues directement en externe via la classe thinkCache, par exemple :

$result = Db::table('user')->cache('key',60)->find();
$data = \think\facade\Cache::get('key');

La méthode de cache prend en charge la définition des balises de cache, par exemple :

Db::table('user')->cache('key',60,'tagName')->find();

Mise à jour automatique du cache

Le cache la mise à jour automatique fait ici référence à Une fois les données mises à jour ou supprimées, le cache sera automatiquement vidé (il sera automatiquement remis en cache lors de sa prochaine récupération).

Lorsque vous supprimez ou mettez à jour des données, vous pouvez appeler la méthode cache de la même clé, qui mettra automatiquement à jour (effacer) le cache, par exemple :

Db::table('user')->cache('user_data')->select([1,3,5]);
Db::table('user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']);
Db::table('user')->cache('user_data')->select([1,3,5]);

Les dernières données interrogées ne seront pas affectées par le premier cache de requête, en s'assurant que la requête et la mise à jour ou la suppression en utilisant le même identifiant de cache videront automatiquement le cache.

Si vous utilisez la clé primaire pour interroger et mettre à jour (ou supprimer), le cache sera automatiquement mis à jour sans spécifier l'ID du cache

Db::table('user')->cache(true)->find(1);
Db::table('user')->cache(true)->where('id', 1)->update(['name'=>'thinkphp']);
Db::table('user')->cache(true)->find(1);